Hadoop完全分布式安装
前言
我们之前搭建了Hadoop的伪分布式的集群,伪分布式的集群对于学习一些基础的Hadoop操作是足够的,但是当你涉及到更复杂的操作时,伪分布式就不够了,完全分布式的性能比伪分布的要强,而且完全分布式可操作性也更高,与此同时完全分布式对于电脑的配置也要求更高,完全分布式一般需要3台虚拟机来完成,下面我们开始搭建自己的完全分布式。
使用环境
下面是本次搭建使用的环境
操作环境 | 主机名 | IP地址 | jdk | hadoop版本 | |
---|---|---|---|---|---|
centos6.8 | hadoop102 | 192.168.128.172 | jdk1.8.0_191 | hadoop-2.7.2 | |
hadoop103 | 192.168.128.173 | ||||
hadoop104 | 192.168.128.174 |
本文中使用的各种包,后续我会进行上传,以方便读者的使用
搭建步骤详解
1.修改各节点的网络配置
在虚拟机中输入
vim /etc/sysconfig/network-scripts/ifcfg-eth0 |
可以进入虚拟机的网卡配置
我们需要修改虚拟机的网卡默认配置,将我们的虚拟机的网卡配置设置为静态ip
ip地址 根据 VMware 虚拟网络进行相关配置 如图
在虚拟机里修改配置可以如图所示
修改完输入
service network restart |
重启网络服务
对其他两个hadoop节点也同样做上述操作,只不过在IPADDR值不一样,分别填其节点对应的ip
2.修改节点主机名,并且添加各节点映射
在命令行中输入
vim /etc/sysconfig/network |
进入文件中修改hostname名称,如图所示
在其他两个子节点的hostname处分别填hadoop103和hadoop104
添加节点映射,输入
vim /etc/hosts |
添加节点映射为
我这里是多写了一些,对于这次搭建我们只需要添加hadoop102,hadoop103,hadoop104的节点映射即可
3.关闭防火墙
我们只有关闭防火墙后才能在三台机器之间互相通信
所以关闭防火墙是很有必要的
我们可以使用这条命令来检查我们虚拟机开机时的防火墙状态
chkconfig iptables --list |
如果是已经关闭应该会如下图所示
如果没有关闭我们可以使用这两条命令来关闭我们的防火墙
service iptables stop |
这条命令是在本次虚拟机开启过程中关闭防火墙,也就是一次性关闭
我们还需要这条命令
chkconfig iptables off |
禁止防火墙关机自启动,这样防火墙就是是关闭了
当hadoop102关闭防火墙后,对于hadoop103与hadoop104也要做同样的操作
在防火墙关闭完成后,输入
reboot |
重启虚拟机,检查防火墙是否已经关闭
4.配置节点间ssh免密登陆
在hadoop102上输入
ssh-keygen -t rsa |
一直按回车
完成后在保证三台虚拟机开启且完成之前所有配置的情况下输入
(注如果提示not found 可能是ssh没有安装,输入
yum install openssh-clients |
安装openssh)
[root@hadoop102 ~]# ssh-copy-id hadoop102 |
在hadoop102上完成后,在其他两个节点上重复上述操作
验证ssh免密登录是否成功
这里可以看到我们可以自己使用ssh转到hadoop103这台机器上
5.安装java和hadoop
我们先使用xftp将hadoop和java的压缩包上传到我们新建的/opt/software上同时新建一个module文件夹放置解压后的hadoop和java,新建文件夹代码如下
[root@hadoop102 ~]# cd /opt/ |
上传完成之后我们需要解压java和hadoop到/opt/module下,以便未来的管理
解压代码如下
tar -zxf jdk-8u191-linux-x64.tar.gz -C /opt/module/ |
解压完成后在/opt/module下应该是这样的,如图所示
之后我们就需要配置环境变量
vi /etc/profile |
在最后添加
export JAVA_HOME=/opt/module/jdk1.8.0_191 |
退出后,输入
source /etc/profile |
使其生效
验证java和hadoop环境变量是否配置完成
[root@hadoop103 module]# java -version |
环境变量已经配置完成, 在其他两个节点上重复上述操作
6.配置hadoop中的文件
6.1配置文件core-site.xml
core-site.xml文件包含了NameNode主机地址,监听端口等信息,对于这个完全分布式模型来说,我的主机地址为hadoo101,NameNode默认使用的端口为8020。
修改core-site.xml
<configuration> |
6.2配置文件hdfs-site.xml
hdfs-site.xml用于配置/HDFS的相关属性,例如数据块的副本参数,数据块的副本对于完全分布式来说应该为3
<configuration> |
6.3配置文件slaves
slaves文件里面记录的是集群里所有DataNode的主机名
[root@hadoop102 hadoop]#vim slaves |
6.4配置文件yarn-site.xml
<configuration> |
6.5配置文件yarn-env.sh
在其中修改java的路径
export JAVA_HOME=/opt/module/jdk1.8.0_191 |
6.6配置hadoop-env.sh
hadoop-env.sh 由于Hadoop是java进程,所以需要添加jdk
export JAVA_HOME=/opt/module/jdk1.8.0_191 |
6.7配置文件mapred-site.xml
先改名,因为本身是没有mapred-site.xml这个文件的
输入
mv mapred-site.xml.template mapred-site.xml |
改名完成后
[root@hadoop102 ~]#vim mapred-site.xml |
这些配置文件改好后,返回/opt/module目录下
把hadoop102下修改的文件分发到hadoop103和hadoop104下
[root@hadoop102 module]# scp -r hadoop root@hadoop103:/opt/module/ |
7.测试集群
在完成配置文件等一系列工作后,我们要开始测试集群了
先格式化
[root@hadoop2 hadoop-2.7.2]# bin/hdfs namenode –format |
之后启动hdfs
[root@hadoop2 hadoop-2.7.2]# sbin/start-dfs.sh |
如果是这样这表示启动hdfs成功
下面启动yarn
sbin/start-yarn.sh |
启动完成后
在浏览器上访问可视化页面:http://192.168.128.172:50070
到此为止,hadoop配置就结束了,谢谢大家的阅读。