Hadoop的HA高可用(可行)
一、集群的规划
Zookeeper集群
192.168.116.121 | 192.168.116.122 | 192.168.116.123 |
hsiehchou121 | hsiehchou122 | hsiehchou123 |
Hadoop集群
192.168.116.121 | 192.168.116.122 | 192.168.116.123 | 192.168.116.124 |
hsiehchou121 | hsiehchou122 | hsiehchou123 | hsiehchou124 |
NameNode1 | NameNode2 | DataNode1 | DataNode2 |
ResourceManager1 | ResourceManager2 | NodeManager1 | NodeManager2 |
Journalnode | Journalnode |
二、准备工作
1、安装JDK
2、配置环境变量
3、配置免密码登录
4、配置主机名
三、配置Zookeeper(在192.168.116.121安装)
在主节点(hsiehchou121)上配置ZooKeeper
1、配置/root/hd/zookeeper-3.4.10/conf/zoo.cfg文件
2、在/root/training/zookeeper-3.4.6/tmp目录下创建一个myid的空文件
echo 1 > /root/hd/zookeeper-3.4.10/tmp/myid
3、将配置好的zookeeper拷贝到其他节点,同时修改各自的myid文件
scp -r /root/hd/zookeeper-3.4.10/ hsiehchou122:/root/hd
scp -r /root/hd/zookeeper-3.4.10/ hsiehchou123:/root/hd
四、安装Hadoop集群(在hsiehchou121上安装)
1、修改hadoo-env.sh
2、修改core-site.xml
3、修改hdfs-site.xml(配置这个nameservice中有几个namenode)
4、修改mapred-site.xml
5、修改yarn-site.xml
6、修改slaves
hsiehchou123
hsiehchou124
7、将配置好的hadoop拷贝到其他节点
scp -r /root/hd/hadoop-2.8.4/ root@hsiehchou122:/root/hd/
scp -r /root/hd/hadoop-2.8.4/ root@hsiehchou123:/root/hd/
scp -r /root/hd/hadoop-2.8.4/ root@hsiehchou124:/root/hd/
五、启动Zookeeper集群
1、格式化zookeeper
[root@hsiehchou121 hadoop-2.8.4]# hdfs zkfc -formatZK
2、启动Zookeeper集群
[root@hsiehchou121 hadoop-2.8.4]# zkServer.sh start
[root@hsiehchou122 hadoop-2.8.4]# zkServer.sh start
[root@hsiehchou123 hadoop-2.8.4]# zkServer.sh start
六、在和hsiehchou122上启动journalnode
hadoop-daemon.sh start journalnode
七、格式化HDFS(在hsiehchou121上执行)
1. 格式化zookeeper
[root@hsiehchou121 hadoop-2.8.4]# hdfs zkfc -formatZK
2、启动hdfs
1)在各个JournalNode节点上,输入以下命令启动journalnode服务
[root@hsiehchou121 hadoop-2.8.4]# sbin/hadoop-daemon.sh start journalnode
2)在[nn1]上,对其进行格式化,并启动
[root@hsiehchou121 hadoop-2.8.4]# bin/hdfs namenode -format
[root@hsiehchou121 hadoop-2.8.4]# sbin/hadoop-daemon.sh start namenode
3)在[nn2]上,同步nn1的元数据信息
[root@hsiehchou121 hadoop-2.8.4]# bin/hdfs namenode -bootstrapStandby
八、在hsiehchou121上启动Hadoop集群
[root@hsiehchou121 hadoop-2.8.4]# start-all.sh
日志
This script is Deprecated. Instead use start-dfs.sh and start-yar
Starting namenodes on [hsiehchou121 hsiehchou122]
hsiehchou121: starting namenode, logging to /root/hd/hadoop-2.8.4-hsiehchou121.out
hsiehchou122: starting namenode, logging to /root/hd/hadoop-2.8.4-hsiehchou122.out
hsiehchou124: starting datanode, logging to /root/hd/hadoop-2.8.4-hsiehchou124.out
hsiehchou123: starting datanode, logging to /root/hd/hadoop-2.8.4-hsiehchou123.out
Starting journal nodes [hsiehchou121 hsiehchou122 ]
hsiehchou121: starting journalnode, logging to /root/hd/hadoop-2.alnode-hsiehchou121.out
hsiehchou122: starting journalnode, logging to /root/hd/hadoop-2.alnode-hsiehchou122.out
Starting ZK Failover Controllers on NN hosts [hsiehchou121 hsiehc
hsiehchou121: starting zkfc, logging to /root/hd/hadoop-2.8.4/logou121.out
hsiehchou122: starting zkfc, logging to /root/hd/hadoop-2.8.4/logou122.out
starting yarn daemons
starting resourcemanager, logging to /root/hd/hadoop-2.8.4/logs/ysiehchou121.out
hsiehchou123: starting nodemanager, logging to /root/hd/hadoop-2.ager-hsiehchou123.out
hsiehchou124: starting nodemanager, logging to /root/hd/hadoop-2.ager-hsiehchou124.outhsiehchou122上的ResourceManager需要单独启动
命令
[root@hsiehchou121 hadoop-2.8.4]# ./sbin/yarn-daemon.sh start resourcemanager