准备搭建一个主机,两个从机的hadoop集群
Host,ip | cluster规划 |
---|---|
192.168.17.162 | namenode,secondarynamenode,Datanode,ResourceManagerNodeManager |
192.168.17.163 | Datanode, NodeManager |
192.168.17.164 | Datanode, NodeManager |
1.准备
Java和hadoop环境都已经配置好
先准备一个主机,先把主机配置一半再去克隆和配置从机
2.修改主机名和ip映射
vi /etc/hosts
192.168.17.162 zhu
192.168.17.163 cong1
192.168.17.164 cong2
记得完成之后一定要systemctl restart network
3.修改配置文件
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
cd /usr/hadoop/hadoop-2.7.3/etc/hadoop
root@zhu hadoop]# vi slaves
#localhost
zhu
cong1
cong2
这里的localhost一定要用#注释掉
3.1. 第一个:hadoop-env.sh [first]
vi hadoop-env.sh
#第25行
export JAVA_HOME=/usr/java/jdk1.8.0_141
要改成jdk的安装路径
3.2. 第二个:core-site.xml [first]
<!-- 制定HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://zhu:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录[能自动生成目录] -->
<property>
<name>hadoop.tmp.dir</name>
<value>/zhu/hadoop/tmp</value>
</property>
这里主机名一定要是namenode的主机名
3.3. 第三个:hdfs-site.xml [first]
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/tmp/dfs/data</value>
</property>
主机一半配置完成,关机开始克隆
通过主机克隆出来两个从机
从机1首先修改从机的静态ip,保存wq,最后记得systemctl restart network 重启网络服务
然后从机2和从机1一样先设置静态ip为192.168.17.164
然后主机从机一起进行如下操作
3.4.第四个:mapred-site.xml (
mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
默认情况下,/usr/hadoop/hadoop-2.7.3/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。
复制并重命名
mv mapred-site.xml.template mapred-site.xml
然后编辑该文件
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
主机配置过从机配置,配置相同
3.5. 第五个:yarn-site.xml
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zhu</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
记得主机名需要修改,主机从机配置相同
4.格式化namenode(是对namenode进行初始化)
hadoop namenode -format
对namenode初始化主机从机依次进行
*
5.免密登录(一定小心)
首先主机
会出现这个找不到文件夹的错误
原因是因为没有用root用户ssh登录过,执行一下ssh操作就会自动生成了
ssh 主机名 如果出现这个错误,说明你主机名和ip映射没配置或者配置完成之后未重启网络(见最开始修改主机名和ip映射)
进入zhu ,然后cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
ssh-copy-id 192.168.17.162 #ip
先使主机自己免密登录,执行时输入用户名和密码
然后从机执行相同步骤
然后主机ssh-copy-id 192.168.17.163
ssh-copy-id 192.168.17.164 给两个从机分配免密登录
然后从机1给主机和从机2分配免密登录
ssh-copy-id 192.168.17.162
ssh-copy-id 192.168.17.164
最后从机2给主机和从机1分配免密登录
ssh-copy-id 192.168.17.162
ssh-copy-id 192.168.17.163
最后在主机中通过ssh连接进入两个从机,并输入yes,在两个从机中也相互ssh一下.保证后边hadoop能启动成功
5.启动hadoop
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
6.验证是否启动成功
使用jps命令验证
[root@zhu sbin]# jps
3912 DataNode
4378 Jps
4331 NodeManager
4093 SecondaryNameNode
3822 NameNode
4239 ResourceManager
[root@cong1 usr]# jps
4678 NodeManager
4810 Jps
4571 DataNode
[root@lq3 usr]# jps
4678 NodeManager
4810 Jps
4571 DataNode
7.关闭防火墙
#停止firewall
systemctl stop firewalld
systemctl disable firewalld.service #禁止firewall开机启动
8.浏览器查看
http://ip地址:50070 (HDFS管理界面)
http://ip地址:8088 yarn管理界面)
HDFS显示3个节点!
yarn显示3个节点!成功!