环境准备和计划:
5台 Centos 7 虚拟机, 规划如下:
HostName | Softwares | Process | comments |
kencentos1 | JDK, hadoop | namenode, zkfc (active), resourceManager | namenode 1, resourceManger |
kencentos2 | JDK, hadoop | namenode, zkfc (active), resourceManager | namenode 2, resourceManger |
kencentosClient1 | JDK, hadoop,zookeeper | QuorumPeefMain(zookeeper),journnode, datanode,nodeManger | datanode 3 |
kencentosClient2 | JDK, hadoop,zookeeper | QuorumPeefMain(zookeeper),journnode, datanode,nodeManger | datanode 1 |
kencentosClient3 | JDK, hadoop,zookeeper | QuorumPeefMain(zookeeper),journnode, datanode,nodeManger | datanode 2 |
Hadoop: 2.8.3,
JDK: 1.8.60
Zookeeper:3.4.9
step1 :centos 7 准备,这个百度上搜搜很容易装好。
step2: JDK 安装和环境变量设置。百度一下都可以解决。
Step3: 下载Hadoop 和 Zookeeper。去Apache 官方找到下载的地方。
Step4:hadoop HA集群配置
这一步需要在 dfs.journalnode.edits.dir 指定的地方建相对应的空文件夹。
core-site.xml:
hdfs-site.xml:
这一步需要在hadoop.tmp.dir指定的地方建相对应的空文件夹。
sshfence
shell(/bin/true)
mapred-site.xml:
yarn-site.xml:
slaves:
kencentosClient3
kencentosClient2
kencentosClient1
Step 5: 配置SSH 免密登陆,各个机器之间。这个可以百度一下,要保证各个节点之间都要能连上。
Step6:将配置好的hadoop copy到其它节点。
scp -r
step7:启动zookeeper集群
分别在kencentosClient1,kencentosClient2, kencentosClient3 机器上执行启动指令:./zkServer.sh start 查看zookeeper状态:./zkServer.sh status, 正确的状态是一个leader,两个follower。
这里如果没有这只zookeeper 的home,请在zookeeper 的bin 下面执行。
step 8: 启动journalnode
分别在kencentosClient1,kencentosClient2,kencentosClient3机器上执行启动指令:sbin/hadoop-daemon.sh start journalnode。 启动成功后会多出一个JournalNode进程。
step9:格式化namenode
选取一个namenode 节点,执行:hdfs namenode -format
Step10:格式化zkfc
在格式化的namenode上执行格式化指令: hdfs zkfc -formatZK
格式化成功后会在zookeeper集群建立新的文件路径(该路径下存放zkfc监控namenode节点的信息)
step11:启动格式化过的namenode:
hadoop-daemon.sh start namenode
Step 12: 在另外一个namenode上执行下面的命令,此步骤是copy格式化好的配置到另外一个节点上。
hdfs namenode -bootstrapStandby
Step13: 启动集群。
完成上面的步骤,就可以stop namenode或者不停也可以。执行下面的命令在namenode 上:
./start-dfs.sh
然后:
./start-yarn.sh.
可以用各自的namenode:50070 去查看是否都已经成功启动了。