Hadoop环境搭建

一、简介

1.1、概念  

      Hadoop是一个由Apache基金会所创建的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题,从广义上来说hadoop是数据存储分包器,可以存储大量的数据。

1.2、优势

        Hadoop具有高可靠性(Hadoop底层有很多维护的数据副本,所以Hadoop处理某个数据节点时,数据不会丢失)、高扩展性(集群分配任务可以是千个节点)、高效性(MapReduce思想下,Hadoop是并行工作模式,处理速度快)、高容错性(能够自动将失败的任务重新分配)

1.3、Hadoop组成部分

 Hadoop的版本迭代也升级了,增加了Yarn进行资源调度。

(HDFS)Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
(2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
(3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

(YARN)Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。


ResourceManager(RM):整个集群资源(内存、CPU等)的管理者
NodeManager(NM):单个节点服务器资源的管理者。
ApplicationMaster(AM):单个任务运行的管理者。
Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
说明:
(1)客户端可以有多个
(2)集群上可以运行多个ApplicationMaster
(3)每个NodeManager上可以有多个Container

MapReduce )将计算过程分为两个阶段:Map 和Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对Map 结果进行汇总

HDFS、YARN、MapReduce 三者关系

首先是客户端从任务管理器中抽取文件,找到计算中心处理,计算中心将任务文件分配到各个Yarn管理的各个NodeManager,这时候Yarn起到调度的作用,将在各个任务分配到每个独立服务器中,也就是我们所说的slave,slave服务器分别存储不同的资源包,有一些存储电影、有一些存储文件。每个服务器独立存储,很少造成数据丢失。

二、Hadoop 运行环境搭建

(注:基本都是下一步了,需要注意的地方会截图说明)

2.1安装VM(虚拟机管理环境)

这里截图是VM12的版本,后期我升级VM15的的版本,安装步骤差不多。

 

序列号去网上找一些可以使用,这个很多了。

2.2 VM网络设置

本操作是将VM创建的服务器分配IP地址,将IP地址地段分配一起,避免冲突。

打开控制面板

 

找到虚拟网卡接口VMware Network,进行配置。

 

配置192.168.56.1网段。(一般1是主服务器)

 

设置网关192.168.56.10网关,以后数据进行交互时是由网关带出去了。

配置网络信息,将创建的虚拟服务器都在同一个网段了。 

2.3 安装CentOS7系统

下载CentOS-7的镜像(百度搜索可以下载,避免版本冲突,最好下载1804版本)

 

 

 

 

安装位置可以是别的盘,我为了方便就选择C盘了。

 

 

.

完成后,会有一个新的主界面,是我们每次启动计算机的界面。

 

 删除掉一些打印机,复印机,不需要的硬件选项,增加运行速度。

 

 

 

 

 

牢记用户密码和Root密码,将来需要改配置,需要密码验证。

使用VM的克隆的方法,创建三台虚拟服务器的主机,并且将三台服务器更名为master,slave1,slave2;先关闭主服务器master的开关,然后进行管理克隆操作。

 

 

 

 2.4 master主机进行网络配置

 登陆成功直接输入下面命令然后回车会出现下面内容

vi /etc/sysconfig/network-scripts/ifcfg-ens33

 改成以下内容

service network restart

 

 slave0和slave1网络配置

 使用同样的方法配置slave0和slave1的网络ip地址,开启服务器成功以后。输入代码

vi /etc/sysconfig/network-scripts/ifcfg-ens33

同样的操作,在slave1中操作,配置slave1的网络变成192.168.56.112,配置网络后ping主机地址,然后再ping一下www.sina.com地址,保证互联网访问正常。

2.5 同步时间

首先先把三台虚拟机关机

 

2.6 Xshell6的安装与使用

Xshell6的作用

可以同时连接多台服务器,将多台服务器连接在一台软件上操作,这样就不用在每台服务器上进行操作,方便远程操作服务器;主要是对服务器进行命令操作,并行可以操作多台虚拟主机

Xshell6安装(基本上都是默认,这里忽略,选择安装的语言记得中文,英语很强请忽略我。)

Xshell6的使用

 链接master主机地址,输入账号密码即可访问

Xftp6的作用

可以同时连接多台服务器,将多台服务器连接在一台机器上操作,这样就不用在每台服务器上进行操作,方便远程操作服务器;主要是对服务器进行文件传输操作.(安装步骤省略,网上有很多资源可以下载)使用操作说明

 

 出现桌面文件和master路径文件的话,表示已经成功了。其他的两台机器就不演示操作了。

2.7  关闭防火墙

 首先打开并登陆master服务器

使用指令查看防火墙状态,一般都是active(running)激活状态,然后用指令关闭防火墙,关闭完后使用systemctl指令加入开机启动项。

systemctl status firewalld.service
systemctl stop firewalld.service

systemctl disable firewalld.service

 

2.8 设置主机名

先在master服务器上操作’,输入下面命令

vi /etc/sysconfig/network

再次修改主机名字,将hostname中内容删除掉,增加mastert名字操作

vi /etc/hostname

 

 按照上述操作方法,将其他的虚拟机更改主机名字,对应的slave0,slave1都修改。修改完记得重启验证一下,主机名字是否更变。

 

 2.9 hosts设置

使用计算机名进行网络访问,需要修改vi /etc/hosts 文件中的主机名与IP地址的对照列表。三台服务器都需要配置一下(master,slave0,slave1)

 免密钥登陆配置

首先在master服务器下面生成秘钥

ssh-keygen -t rsa

然后按四次回车,出现下面内容

进入根目录文件夹中

cd ~/.ssh
ls -l

 然后输入下面命令把公钥文件发送到自己和其它服务器还有发送自己了。

ssh-copy-id -i id_rsa.pub root@master

输入Yes,一直接收

 输入root密码

 成功后出现下面内容

 然后再分别发送给slave0和slave1

 验证是否成功

        在master服务器输入下面的命令,都不需要输入密码,就说明成功了,注意每执行完一条命令都用exit退出一下再执行下一条。

2.10 安装JDK

首先在master服务器的usr/local目录下新建一个java文件夹,用下面命令就可以完成

mkdir /usr/local/java

然后用Xftp连接master服务器,打开usr/local/java这个目录,把jdk-8u162-linux-x64.tar复制进去,

使用指令解压

tar -zxvf jdk-8u162-linux-x64.tar.gz

 接下来开始配置环境变量,先用cd命令回到总目录

 输入下面命令开始配置

增加以下内容,

 

加载环境变量,使用

然后输入java、javac和java -version验证,如果都出现一大堆代码说明配置成功了,如果其中有一个或多个出现不是内部或外部命令,也不是可运行的程序或批处理文件等类似语句,就说明配置失败了,需要重新配置jdk环境。

 这样就安装好master服务器的jdk了,但是还没有安装好slave0和slave1的jdk,我们可以用下面命令把master中的jdk复制到slave0上面

scp -r /usr/local/java root@slave0:/usr/local

 这时已经把jdk复制到slave0了,但是slave0的环境变量还没有配置,我们同样可以使用下面命令来复制环境变量

scp -r /root/.bash_profile root@slave0:/root

 在slave0加载环境变量,同样用java,javac,java-version测试环境。

source /root/.bash_profile

slave1操作和slave0一致,重复操作,进行java测试。

2.11 Hadoop安装与环境配置

先用下面的命令给opt文件夹中新建一个hapoop文件夹,后期配置hadoop文件

mkdir /opt/hadoop

然后把hadoop-2.7.5复制到hadoop文件夹中

 使用下面命令进入到hadoop文件夹,进行解压

cd /opt/hadoop
tar -zxvf hadoop-2.7.5.tar.gz

使用mv指令把hadoop-2.7.5文件夹重命名成hadoop

mv hadoop-2.7.5 hadoop

在主服务器master上配置

 1.配置hadoop-env.sh

该文件设置的是Hadoop运行时需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行,它也是把当前执行的环境当成远程服务器。所以这里设置的目的是确保Hadoop能正确的找到jdk。

 

 在hadoop文件中找到hadoop-env.sh文件进行修改,配置java的路径。

 

2. 配置core-site.xml

core-site.xm所在的目录和上面的目录一样,所以直接使用下面命令打开该文件即可

cd /opt/hadoop/hadoop/etc/hadoop
vi core-site.xml

接着把下面命令写入<configuration></configuration>中,注释不用写

<!-- 指定Hadoop所使用的文件系统schema(URL),HDFS的老大(NameNode)的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的储存目录,默认是/tmp/hadoop-${user.name} -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/hadoop/hadoopdata</value>
</property>
vi hdfs-site.xml

 3.配置hdfs-site.xml

hdfs-site.xml所在的目录和上面的目录一样,所以直接使用下面命令打开该文件即可

vi hdfs-site.xml

接着把下面命令写入<configuration></configuration>中,注释不用写

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

4.配置yarn-site.xml

yarn-site.xml所在的目录和上面的目录一样,所以直接使用下面命令打开该文件即可

vi yarn-site.xml

接着把下面命令写入<configuration></configuration>中,里面自带的注释不用删除

<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<property>
	<name>yarn.resourcemanager.address</name>
	<value>master:18040</value>
</property>
<property>
	<name>yarn.resourcemanager.scheduler.address</name>
	<value>master:18030</value>
</property>
<property>
	<name>yarn.resourcemanager.resource-tracker.address</name>
	<value>master:18025</value>
</property>
<property>
	<name>yarn.resourcemanager.admin.address</name>
	<value>master:18141</value>
</property>
<property>
	<name>yarn.resourcemanager.webapp.address</name>
	<value>master:18088</value>
</property>

 5.配置mapred-site.xml

还是在/opt/hadoop/hadoop/etc/hadoop目录下(也就是上个文件所在的目录),有一个叫 mapred-site.xml.template的文件,把它复制到/opt/hadoop/hadoop/etc/hadoop目录下(也就是mapred-queues.xml.template文件所在的目录)重命名为mapred-site.xml,命令如下

mv mapred-site.xml.template mapred-site.xml

 编辑文本

vi mapred-site.xml

接着把下面命令写入<configuration></configuration>中,注释不用写

<!-- 指定mr运行时框架,这里指定在yarn上,默认是local -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

 6.配置slaves

slaves 文件给出了 Hadoop 集群的 Slave 节点列表。该文件十分重要,因为启动Hadoop 的时候,系统总是根据当前 slaves 文件中 Slave 节点名称列表启动集群,不在列表中的Slave节点便不会被视为计算节点.

slaves所在的目录和上面的目录一样,所以直接使用下面命令打开该文件即可

cd /opt/hadoop/hadoop/etc/hadoop
vi slaves

 增加以下文字内容,进行配置。

 

 7.配置Hadoop环境变量

先用cd命令回到总目录

编辑环境变量配置

vi /root/.bash_profile

 增加以下内容,将Hadoop的环境变量配置到系统中。

export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

 保存文件,使用source功能加载环境变量。

source /root/.bash_profile

 8.新建Hadoop运行时产生文件的储存目录

先用cd命令回到总目录

 接着用下面命令新建目录

mkdir /opt/hadoop/hadoopdata

9.给slave0和slave1复制Hadoop

用下面命令就可以把master的Hadoop复制到slave0,slavae1上

scp -r /opt/hadoop root@slave0:/opt
scp -r /opt/hadoop root@slave0:/opt

接着用下面命令把master的环境变量复制到slave0,slave1上

scp -r /root/.bash_profile root@slave0:/root
scp -r /root/.bash_profile root@slave1:/root

然后在slave0中输入下面内容使环境变量生效

source /root/.bash_profile

10.格式化文件系统

在master中输入下面命令格式化文件系统,其余俩台服务器不用,注意该命令只能使用一次

hadoop namenode -format

11.启动Hadoop

在master服务器上,先用下面命令进入Hadoop的sbin目录

cd /opt/hadoop/hadoop/sbin

然后输入下面命令启动

start-all.sh

在三台服务器分别输入jps可以判断是否启动成功,出现下面内容说明成功

 

 

 12.关闭Hadoop

只需要在master服务器输入下面命令即可,三个服务器正常停止hadoop的操作。

stop-all.sh

 

思考和总结:hadoop安装不复杂了,只是需要注意配置nodemanager、yarn的环境还有同步时间,注意配置网络环境还有主机名字。java的配置一定要成功,第一次配置时候少了验证javac的指令,导致后期hadoop启动不了,回查很久才发现是Java的环境配置有问题了,重新验证Java的环境没有错误后,进行Hadoop启动后就可以使用。下期讲解生产环境中,应用hadoop做生产使用。

参考网站:

Hadoop环境搭建_码仙♥的博客-CSDN博客

大数据技术之Hadoop(入门)概述、运行环境搭建、运行模式_@从一到无穷大的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

electron+vue3+ts+vite

首先使用vite工具创建一个vue3ts的项目 npm create vite创建好vuets项目后启动项目 cd electron-vue3-ts-vitenpm installnpm run dev 访问http://127.0.0.1:5173/地址可以看到项目已经启动成功 安装Electron 接下来我们安装electron&#xff0c;使用以下命令 npm i -D el…

CV什么时候能迎来ChatGPT时刻?

卷友们好&#xff0c;我是rumor。 最近看了几篇CV的工作&#xff0c;肉眼就感受到了CVer们对于大一统模型的“焦虑”。 这份焦虑让他们开始尝试统一一切&#xff0c;比如&#xff1a; 统一复杂的自动驾驶任务的优化目标[1]&#xff0c;来自今年CVPR最佳论文。统一典型的CV任务&…

360手机 360手机刷机最高安卓版本参考

360手机 360手机刷机最高安卓版本参考 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360刷机包360手机刷机&#xff1a;360rom.github.io 【360手机(最高)安卓版本】 以下列举为常见360手机机型&#xff1b;其它早期系列&#xff0c;一般为Android4-6左右360手机UI界…

doker安装RabbitMQ以及用java连接

目录 doker安装&#xff1a; RabitMq安装&#xff1a; java链接 doker安装&#xff1a; 参考链接&#xff08;非常详细&#xff09;&#xff1a; docker安装以及部署_docker bu shuminio_春风与麋鹿的博客-CSDN博客 安装好后开启doker //启动docker服务 systemctl start do…

保偏产品系列丨5款保偏光纤产品简介

保偏光纤应用日益扩大&#xff0c;特别是在干涉型传感器等测量方面&#xff0c;利用保偏光纤的光无源器件起着非常重要的作用&#xff0c;种类也很多。 本文来介绍5款保偏光纤系列产品以及它们的性能&#xff0c;欢迎收藏转发哦&#xff01; 01、保偏光纤跳线-TLPMPC 保偏光纤跳…

梯度下降法求函数的解

题目 例如 y x^ 5 e^x3x−3&#xff0c;求解y 0的解 问题分析 首先要构造y 0的损失函数&#xff0c;让这个损失函数是凸的&#xff0c;也就是可以有最优解&#xff0c;并且是可到的&#xff0c;比较容易想到的是mse平方误差&#xff0c;我们要让y和0之间绝对误差最小。lo…

css 背景颜色级别高于背景图

<div class"bg-parent"> <img :src"employeeImg" class"bg-url" /> <div class"bg"> <el-icon class"plus-icon"> <Plus /> </el-icon> </div> </div> .bg-parent{ //父级…

python3套接字编程之socket和socketserver(TCP和UDP通信)

socket和socketserver是python3中socket通信模块&#xff0c;关于其使用做如下总结。 目录 1.socket 1.1模块引入 1.2套接字获取 1.3套接字接口 1.3.1 服务端 1.3.2 客户端套接字函数 1.3.3 公共套接字函数 1.3.4 面向锁的套接字方法 1.3.5 面向文件的套接字的函数 …

CNN卷积类型总结(标准卷积、空洞卷积、反卷积、深度可分离卷积、分组卷积等)

目录 标准卷积 卷积的运算 conv2d conv1d 其他卷积类型 空洞卷积&#xff08;膨胀卷积&#xff09; 反卷积&#xff08;转置卷积&#xff09; 深度可分离卷积 分组卷积 参考文章 上学时&#xff0c;卷积常在各个课程中出现&#xff0c;现代、信号与系统这些&#xff…

【MySQL】SQL的高阶用法

文章目录 条件查询使用关系运算符查询使用IN关键字查询使用BETWEEN AND关键字查询使用空值查询使用AND关键字查询使用OR关键字查询使用LIKE关键字查询(模糊查询)使用LIMIT分页查询使用GROUP BY进行分组查询GROUP BY和聚合函数一起使用GROUP BY和聚合函数以及HAVING一起使用 使用…

热点探测技术架构设计与实践

1. 概述 说到热点问题&#xff0c;首先我们先理解一下什么是热点&#xff1f; 热点通常意义来说&#xff0c;是指在一段时间内&#xff0c;被广泛关注的物品或事件&#xff0c;例如微博热搜&#xff0c;热卖商品&#xff0c;热点新闻&#xff0c;明星直播等等&#xff0c;所以…

2-css-2

一 复合选择器 定义&#xff1a;由两个或多个基础选择器&#xff0c;通过不同的方式组合而成。 作用&#xff1a;更准确、更高效的选择目标元素&#xff08;标签&#xff09;。 1 后代选择器 后代选择器&#xff1a;选中某元素的后代元素。 选择器写法&#xff1a;父选择器…

【微信小程序开发】第 7 课 - 小程序的常用组件

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、小程序中组件的分类 3、常用的视图容器类组件 3.1、view 组件 3.2、scroll - view 组件 3.3、swiper 和 swiper…

OpenAI 重磅更新 变得更强啦 | 包括更多可控的 API 模型、函数调用能力、更长的上下文和更低的价格

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 OpenAI 官网&#xff1a;https://openai.com/blog/function-calling-and-other-api-updates 功能调用和其他 API 更新。OpenAI 宣布更新&#xff0c;包…

哈工大计算机网络课程网络层协议详解之:互联网控制报文协议(ICMP)

哈工大计算机网络课程网络层协议详解之&#xff1a;互联网控制报文协议&#xff08;ICMP&#xff09; 在互联网中&#xff0c;IP数据报的传输很容易出现差错&#xff0c;当出现差错时&#xff0c;最简单的处理办法就是对该IP数据报进行丢弃。但是&#xff0c;并不是直接丢弃就…

Linux 学习记录40(C++篇)

Linux 学习记录40(C/QT篇) 本文目录 Linux 学习记录40(C/QT篇)一、QT软件的使用1. 新建工程 二、C语言和C的区别1. C对C的扩充2. C对C的兼容 三、第一个C程序1. cout标准输出流对象(1.介绍&#xff1a;(2. 运算符(3. cout的使用 2. cin标准输出流对象(1.介绍&#xff1a;(3. ci…

TCP/IP详解(一)

TCP/IP协议是Internet互联网最基本的协议&#xff0c;其在一定程度上参考了七层OSI&#xff08;Open System Interconnect&#xff0c;即开放式系统互联&#xff09;模型 OSI参考模型是国际组织ISO在1985年发布的网络互联模型&#xff0c;目的是为了让所有公司使用统一的规范来…

序列化和反序列化的认识【protobuf、json、xml】

1. 什么是序列化与反序列化&#xff1f; 程序员在编写应用程序的时候往往需要将程序的某些数据存储在连续的内存中&#xff0c;然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯。这个将程序数据转换成能被存储并传输的格式的过程被称为序列化&#xff08;seri…

web存储(Storage)

目录 1、基本概念 2、功能监测 2.1 测试可用性 2、W3C标准 3、基本方法或属性 4、 Local Storage 4.1 描述 4.2 示例 5、sessionStorage 5.1 描述 5.2 示例 6、StorageEvent&#xff08;存储事件&#xff09; 6.1 构造函数 6.2 实例属性 6.3 实例方法 6.4 响应…

【spring源码系列-04】注解方式启动spring时refresh的前置工作

Spring源码系列整体栏目 内容链接地址【一】spring源码整体概述https://blog.csdn.net/zhenghuishengq/article/details/130940885【二】通过refresh方法剖析IOC的整体流程https://blog.csdn.net/zhenghuishengq/article/details/131003428【三】xml配置文件启动spring时refres…