Hadoop2.x版本多节点集群安装及测试

              Hadoop2.x版本多节点集群安装及测试

                                                  作者:Fushicho 日期:2018-12-11

                                                                       目录

         Hadoop2.x版本多节点集群安装及测试

环境说明:

运行环境准备

配置ubuntu系统

第一步:在VMware上安装ubuntu操作系统;

第二步:安装 OpenSSH Server

第三步:查询ssh是否启动

第四步:修改vim版本

第五步:为root添加用户密码

第六步:将操作者身份改为root

第七步:配置root支持ssh

第八步:重启ssh服务

第九步:修改主机名

第十步:Ubuntu配置hosts文件

第十一步:Windows配置hosts

第十二步:关闭防火墙

配置JAVA环境

第一步:下载JAVA包

第二步:将文件上传到虚拟机

第三步:开始配置JAVA环境:

配置hadoop环境

第一步:下载hadoop

第二步: 将文件上传到虚拟机

第三步:解压hadoop文件

第四步: 配置hadoop-env.sh

第五步:配置core-site.xml

第六步:配置mapred-site.xml

第七步:配置hdfs-site.xml

第八步:配置Slaves

克隆虚拟机

配置台机器间开启免密码SSH登入

运行Hadoop

启动HDFS

启动yarn

查看Hadoop资源管理

查看HDFS分布式文件系统的Web

查看All Applications的平台Web

测试Hadoop

第一步:创建 HDFS 目录,以便执行 MapReduce 任务

第二步:拷贝输入文件到分布式文件系统

第三步:查看拷贝结果

第四步:运行 Hadoop 自带的 WordCount 例子

第五步:将结果从分布式文件系统拷贝到本地

关闭Hadoop

停止YARN

关闭主程序

简单指令启动和关闭Hadoop


环境说明:

Hadoop的安装为分布式模式,集群为3个节点:

IP

user

hostname

hadoop角色

192.168.49.121

root

Master

NameNode/SecondaryNameNode/ResourceManager

192.168.49.122

root

Slave_1

DataNode/NodeManager

192.168.49.123

root

Slave_2

DataNode/NodeManager

运行环境准备

下载免费的VMware并安装好;

下载免费的ubuntu-18.04.1-desktop-amd64.iso镜像并在VMware中安装好;

下载免费的Xshell软件--------连接虚拟机(方便复制粘贴);

下载免费的FileZile软件-------连接虚拟机(方便传文件到虚拟机);

配置ubuntu系统

第一步:在VMware上安装ubuntu操作系统;

  这是ubuntu-18.04.1-desktop-amd64.iso镜像,也可以自己下载新版本;

  这里提供我的百度云连接

  提取码:s2zw

第二步:安装 OpenSSH Server

[user@localhost ~]#  sudo apt-get install openssh-server

第三步:查询ssh是否启动

[user@localhost ~]#  ps -e | grep ssh

(看到sshd说明ssh-server已经启动了,可以使用Xshell和FileZile连接了,默认端口号是22)

第四步:修改vim版本

(1)删除ubuntu默认安装的vim tiny版本

[user@localhost ~]#  sudo apt-get remove vim-common

(2)安装vim full版本(方便操作)

[user@localhost ~]#  sudo apt-get install vim

第五步:为root添加用户密码

[user@localhost ~]#  sudo passwd root

(先输入user用户密码,再输入root用户密码)

第六步:将操作者身份改为root

[user@localhost ~]#  su

(输入刚刚设置的密码即可)

第七步:配置root支持ssh

编辑sshd_config文件

[root@localhost ~]#  vi /etc/ssh/sshd_config

添加一行代码PermitRootLogin yes 且取消2个注释代码使其生效,修改为如下:

第八步:重启ssh服务

[root@localhost ~]#  /etc/init.d/ssh restart

第九步:修改主机名

[root@localhost ~]#  vi /etc/hostname

修改主机名为: Master

(重启虚拟机即可生效,即输入reboot)

第十步:Ubuntu配置hosts文件

(ubuntu系统和windows系统的hosts文件都需要)

[root@ Master ~]#  vi /etc/hosts

配置虚拟机hosts文件,添加三行:

192.168.49.121  Master

192.168.49.122  Slave_1

192.168.49.123  Slave_2

第十一步:Windows配置hosts

位置:  C:\Windows\System32\drivers\etc\hosts

同样添加上面三行数据:

192.168.49.121  Master

192.168.49.122  Slave_1

192.168.49.123  Slave_2

(若是无法保存文件,请先将文件权限进行修改为可写,系统文件默认只可读~)

第十二步:关闭防火墙

[root@ Master ~]#  sudo apt-get install ufw

[root@ Master ~]#  sudo ufw disable

配置JAVA环境

第一步:下载JAVA包

这个是官方网站,你可以下载到最新版本:

https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html

 

第二步:将文件上传到虚拟机

使用FileZile软件将jdk.tar.gz上传到虚拟机中;

第三步:开始配置JAVA环境:

(1)解压文件

[root@ Master ~]# tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr

(2)将JAVA添加到环境变量中

  [root@ Master ~]# vi /etc/profile

在文件最后加入:

  export JAVA_HOME=/usr/jdk1.8.0_191            

export PATH=$PATH:$JAVA_HOME/bin

(4)快速生效环境变量

  [root@ Master ~]# source /etc/profile

(5)查看配置是否成功

  [root@ Master ~]# java -version

若是成功则可以看到:

配置hadoop环境

第一步:下载hadoop

这里提供我的百度云链接的hadoop-2.7.3版本:

提取码:idee

第二步: 将文件上传到虚拟机

使用FileZile软件将hadoop-2.7.3上传到虚拟机中;

第三步:解压hadoop文件

(1)解压文件到usr中

[root@ Master ~]# tar -zxvf hadoop-2.7.3.tar.gz -C /usr

(2)修改文件名

[root@ Master ~]# mv /usr/hadoop-2.7.3 /usr/hadoop

(3)进入hadoop目录

[root@ Master ~]# cd /usr/hadoop

(4) 将Hadoop添加到环境变量中

[root@ Master ~]# vi /etc/profile

export HADOOP_HOME=/usr/hadoop    

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

第四步: 配置hadoop-env.sh

[root@Master:/usr/hadoop]# vi etc/hadoop/hadoop-env.sh

替换exportJAVA_HOME=${JAVA_HOME}为如下:

export JAVA_HOME=/usr/jdk1.8.0_191            

export PATH=$PATH:$JAVA_HOME/bin

位置如下:

第五步:配置core-site.xml

[root@Master:/usr/hadoop]# vi etc/hadoop/core-site.xml

修改如下:

<configuration>

<!--配置HDFS 的NameNode-->

<property>

<name>fs.default.name</name>

 <value>hdfs://Master:9000</value>

</property>

<!--配置DataNode 保存数据的位置-->

<property>

<name>hadoop.tmp.dir</name>

 <value>/usr/hadoop/tmp/hadoop-${user.name}</value>

 </property>

</configuration>

第六步:配置mapred-site.xml

(1)修改名称

mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

(2)打开mapred-site.xml

[root@Master:/usr/hadoop]# vi etc/hadoop/mapred-site.xml

修改如下:

<configuration>

<property>

 <name>mapred.job.tracker</name>

 <value>Master:9001</value>

</property>

</configuration>

第七步:配置hdfs-site.xml

[root@Master:/usr/hadoop]# vi etc/hadoop/hdfs-site.xml

修改如下:

<configuration>

<property>

 <name>dfs.replication</name>

 <value>1</value>

</property>

</configuration>

第八步:配置Slaves

[root@Master:/usr/hadoop]# vi etc/hadoop/slaves

将原本的localhost删掉,修改为:

Slave_1

Slave_2

克隆虚拟机

(1)关闭虚拟机,点击该虚拟机->管理->克隆->创建完整克隆

(2)这里需要克隆2台作为datanode节点,没命名前简称为hadoop2和hadoop3.

(3)克隆后分别开启主机并用Xshell连接2台主机(使用root身份);

(4)修改hadoop2主机名

vi /etc/hostname

修改主机名为: Slave_1

(重启虚拟机即可生效,即reboot)

(5) 修改hadoop_3主机名

sudo vi /etc/hostname

修改主机名为: Slave_2

(重启虚拟机即可生效,即reboot)

配置台机器间开启免密码SSH登入

为每台主机都配置 SSH 无密登录本机,并把秘钥发给另外2台主机:

(1)生成ssh公钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

(2)将生成的ssh公钥添加到识别文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(3)设置文件权限为600

chmod 0600 ~/.ssh/authorized_keys

(4)打开文件,将里面的内容拷贝到另外2台主机的相应文件中

ssh-copy-id root@Slave_1

(输入yes确认还有密码,之后就能免密码SSH登入Slave_1了,其他同理~)

(5)命令验证SSH 配置,如下:

ssh 主机名

(当三台机都能免密码SSH登入时就完成了配置过程~)

运行Hadoop

注:所有的运行只需要在Master节点即可。系统会自动登录到其他两台去启动相应的节点。

初次运行Hadoop的时候需要初始化Hadoop文件系统,命令如下:

[root@ Master:/usr/hadoop]# bin/hdfs namenode -format

如果执行成功,你会在日志中(倒数几行)找到如下成功的提示信息:

运行命令如下(需要注意看主机名来确定是哪台机输入指令~):

启动HDFS

(1)输入启动指令

[root@ Master:/usr/hadoop]# sbin/start-dfs.sh

(第一次操作需要输入yes,由于配置了免密码SSH,故不需要输入密码)

(2)分别查看一下三台机的进程情况:

[root@ Master:/usr/hadoop]# jsp

(发现NameNode和SecondaryNameNode启动成功~)

[root@ Slave_1:~]# jsp

(发现DataNode启动成功~)

[root@ Slave_2:~]# jsp

(发现DataNode启动成功~)

启动yarn

(1)输入启动指令

[root@ Master:/usr/hadoop]# sbin/start-yarn.sh

(2)分别查看一下三台机子的进程情况:

[root@ Master:/usr/hadoop]# jps

(发现ResourceManager启动成功了~)

[root@ Slave_1:~]# jps

(发现NodeManager启动成功了~)

[root@ Slave_2:~]# jps

(发现NodeManager启动成功了~)

查看Hadoop资源管理

[root@ Master:/usr/hadoop]# bin/hdfs dfsadmin –report

可以看到资源分配情况:

 

查看HDFS分布式文件系统的Web

http://192.168.49.121:50070/

查看All Applications的平台Web

http://192.168.49.121:8088/

测试Hadoop

第一步:创建 HDFS 目录,以便执行 MapReduce 任务

[root@ Master:/usr/hadoop]# bin/hdfs dfs -mkdir -p /user/root

可以在上面的网站中看到hdfs中成功创建了这个目录文件结果:

第二步:拷贝输入文件到分布式文件系统

[root@ Master:/usr/hadoop]# bin/hdfs dfs -put etc/hadoop input

(这里举例拷贝 etc/hadoop 目录下的文件到 HDFS 中)

第三步:查看拷贝结果

[root@ Master:/usr/hadoop]# bin/hdfs dfs -ls input

也可在刚刚网页中查看结果:

(很明显copy成功了~)

第四步:运行 Hadoop 自带的 WordCount 例子

[root@ Master:/usr/hadoop]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

这里说明一下这句话的含义:

可以见到下图结果就说明成功了:

说明:

[1] 这种模式是在本地运行 MapReduce 任务,如果需要在 YARN 上运行,请看本文后面的

YARN 配置;

[2] 这个例子是计算某个目录下所有文件中包含某个字符串的次数,这里的字符串是匹配'dfs[a-z.]+'成功的次数;

[3] dfs[a-z.]+是正则表达式,表示以dfs开头加上大于等于一个小写英文字母或.的匹配

第五步:将结果从分布式文件系统拷贝到本地

[root@ Master:/usr/hadoop]# bin/hdfs dfs -get output output

[root@ Master:/usr/hadoop]# cat output/*

结果如下:

关闭Hadoop

停止YARN

[root@ Master:/usr/hadoop]# sbin/stop-yarn.sh

关闭主程序

[root@ Master:/usr/hadoop]# sbin/stop-dfs.sh

简单指令启动和关闭Hadoop

由于上面是为了理解每个过程,所以没有一次性的启动和关闭Hadoop,而且实际上早已经配置了环境变量,启动和关闭Hadoop分别为如下指令:

启动: [root@ Master:~]# start-all.sh

关闭: [root@ Master:~]# stop-all.sh

参考文献:

https://blog.csdn.net/weixin_41156591/article/details/85000054

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值