在三个虚拟机上搭建完全分布式的Hadoop集群,用于学习~
主机IP/HOSTS/网卡配置
1.关闭防火墙
service iptables stop
chkconfig iptables off
2.修改HOSTNAME属性,依次改为hadoop01
、hadoop02
、hadoop03
;保存退出,并且重新生效
vim /etc/sysconfig/network
source /etc/sysconfig/network
3.hosts: 三台云主机添加IP映射
vim /etc/hosts
4. 重启三台虚拟机
reboot
5.启动Zookeeper,三台都执行以下命令
cd /home/software/zookeeper-3.4.8/bin
sh zkServer.sh start
sh zkServer.sh status
6.三台机器进行免密登录的配置
# 生成秘钥
ssh-keygen
# 把秘钥拷贝给自己和另外两个节点
ssh-copy-id root@hadoop01
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
# 测试
ssh hadoop01 如果不需要密码logout
ssh hadoop02 如果不需要密码logout
ssh hadoop03 如果不需要密码logout
7.第一个节点回到software目录下,下载并解压hadoop安装包
cd /home/software/
tar -xvf hadoop-dist.tar.gz
8.将Hadoop的安装包拷贝到其他两个节点上
scp -r hadoop-2.7.1/ root@hadoop02:/home/software/
scp -r hadoop-2.7.1/ root@hadoop03:/home/software/
9.三台节点配置环境变量
vim /etc/profile
# 配置环境变量
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 保存退出
:wq
# 使配置文件生效
source /etc/profile
10.在任意一个节点上格式化Zookeeper - 实际上就是在Zookeeper中注册Hadoop节点
hdfs zkfc -formatZK
如果成功,则日志中会出现Successfully created /hadoop-ha/ns in ZK
如果出现 HA is not available
,则系统兼容性不够 - 重装系统
启动Hadoop集群
11.启动三台虚拟机的JournalNode
hadoop-daemon.sh start journalnode
12.在第一个节点上格式化·NameNode·
hadoop namenode -format
如果格式化成功,则出现 Storage directory /home/software/hadoop-2.7.1/tmp/hdfs/name has been successfully formatted.
13.在第一个节点上启动NameNode
hadoop-daemon.sh start namenode
14.在第二个节点上格式化NameNode
hdfs namenode -bootstrapStandby
如果格式化成功,则出现Storage directory /home/software/hadoop-2.7.1/tmp/hdfs/name has been successfully formatted.
15.在第二个节点上启动 NameNode
hadoop-daemon.sh start namenode
16.在三个节点上启动 DataNode
hadoop-daemon.sh start datanode
17.在第三个节点上启动YARN
start-yarn.sh
18.在第一个节点上启动 ResourceManager
yarn-daemon.sh start resourcemanager
19.在第一个和第二个节点上启动zkfc
hadoop-daemon.sh start zkfc
20.通过jps
查看节点是否启动成功
hadoop01:8, hadoop02:7, hadoop03:6
注:
- 如果少了
QuorumPeerMain
,表示Zookeeper启动出错 - 如果少了
NameNode
/DataNode
/JournalNode
/DFSZKFailoverController
,执行:
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start journalnode
hadoop-daemon.sh start zkfc
- 如果少了
ResourceManager
/NodeManager
,执行:
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
- Hadoop完全分布式的启动,先启动Zookeeper,再启动Hadoop~