当前位置:   article > 正文

hadoop系列(二)HA高可用方式部署_192.168.1.205;8088

192.168.1.205;8088

hadoo系列(一)hadoop集群安装

https://blog.csdn.net/qq_38130094/article/details/121777819

hadoop系列(二)HA高可用方式部署

https://blog.csdn.net/qq_38130094/article/details/121881367

hadoop系列(三) HDFS的shell操作和常用API操作

https://blog.csdn.net/qq_38130094/article/details/121916009

hadoop系列(四)HDFS的工作机制,MapReduce,yarn流程及核心原理

https://blog.csdn.net/qq_38130094/article/details/122162398

hadoop系列(五) 源码分析

https://blog.csdn.net/qq_38130094/article/details/122147830

目录

1. 部署安装zookeeper

1.1 下载zookeeper安装包zookeeper.2.4.6.tar

1.2 在conf目录下新增配置文件zoo.cfg

1.3 启动三台机器的zk

2. 部署高可用HDFS

2.1 增加配置文件中的相关目录

2.2 修改DHFS相关配置文件

2.21修改core-site.xml配置文件

2.2.2 修改hdfs-site.xml配置文件

2.2.3 修改slaves文件,代表dataNode的是哪些节点

2.3 在三台机器上node1,node2,node4 启动journalnode

2.4 在主节点格式化namenode

2.5 格式化zookeeper

2.4  启动hdfs

3. 部署高可用yarn

3.1 修改配置文件


主节点(nameNode节点)与其他从节点具备ssh免密登录

环境

系统zookeeperhadoop
centos7.5(四台)2.4.6(集群三个节点)2.8.5

HOST

IP

NameNode

JN

SNN

DN

ZKFC

ZK

node01

192.168.1.201

node02

192.168.1.202

node04

192.168.1.204

node05

192.168.1.205

部署步骤:

  1. 先启动 JN hadoop-daemon.sh start journalnode
  2. 选择一个NameNode进行格式化操作 ./hdfs namenode -format 只有第一次搭建的时候做,其他时候直接启动,然后启动这个格式化的namenode
  3. 在另外一台namenode 同步 ./hdfs namenode -bootstrapStandby 
  4. 格式化zookeeper : hdfs zkfc -formatZK 只有第一次搭建的时候做
  5. 启动 hdfs 

1. 部署安装zookeeper

1.1 下载zookeeper安装包zookeeper.2.4.6.tar

准备zk的数据目录,在node2上执行:

  1. cd /usr/local/bigdata
  2. wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
  3. mkdir zk
  4. cd zk/
  5. echo 1 > myid
  6. # 其他节点 根据zookeeper的配置文件 配置不同的myid

1.2 在conf目录下新增配置文件zoo.cfg

  1. dataDir=/usr/local/bigdata/zk
  2. server.1=192.168.1.102:2888:3888
  3. server.2=192.168.1.104:2888:3888
  4. server.3=192.168.1.105:2888:3888

把文件cope到node4和node5,而且对应的也要新增zk目录

  1. # 在node4上新增mypid
  2. echo 4 > myid
  3. # 在node5上新增mypid
  4. echo 5 > myid
  1. scp -r zookeeper-3.4.6 node4:`pwd`
  2. scp -r zookeeper-3.4.6 node5:`pwd`

1.3 启动三台机器的zk

/usr/local/bigdata/zookeeper-3.4.6/bin/zkServer.sh start /usr/local/bigdata/zookeeper-3.4.6/bin/conf/zoo.cfg

2. 部署高可用HDFS

2.1 增加配置文件中的相关目录

修改hadoop-env.sh

  1. export JAVA_HOME=/usr/local/jdk1.8.0_301
  2. export HADOOP_CONF_DIR=/usr/local/bigdata/hadoop-ha/etc/hadoop
  1. mkdir -p /home/hadoop/ha/hdfs/data
  2. mkdir -p /home/hadoop/ha/hdfs/name

2.2 修改DHFS相关配置文件

core-site.xml

hdfs-site.xml

slaves

2.21修改core-site.xml配置文件

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://mycluster</value>
  5. </property>
  6. <property>
  7. <name>ha.zookeeper.quorum</name>
  8. <value>node2:2181,node4:2181,node5:2181</value>
  9. </property>
  10. <property>
  11. <name>hadoop.home.dir</name>
  12. <value>file:/usr/local/bigdata/hadoop-ha</value>
  13. <description>Abase for other temporary directories.</description>
  14. </property>
  15. <property>
  16. <name>hadoop.tmp.dir</name>
  17. <value>file:/home/hadoop/ha/hdfs</value>
  18. </property>
  19. </configuration>

2.2.2 修改hdfs-site.xml配置文件

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>2</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/home/hadoop/ha/hdfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/home/hadoop/ha/hdfs/data</value>
  13. </property>
  14. <property>
  15. <name>dfs.hosts</name>
  16. <value>/usr/local/bigdata/hadoop-ha/etc/hadoop/slaves</value>
  17. </property>
  18. <!-- 一对多,逻辑配置 -->
  19. <property>
  20. <name>dfs.nameservices</name>
  21. <value>mycluster</value>
  22. </property>
  23. <property>
  24. <name>dfs.ha.namenodes.mycluster</name>
  25. <value>nn1,nn2</value>
  26. </property>
  27. <property>
  28. <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  29. <value>node1:8020</value>
  30. </property>
  31. <property>
  32. <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  33. <value>node2:8020</value>
  34. </property>
  35. <property>
  36. <name>dfs.namenode.http-address.mycluster.nn1</name>
  37. <value>node1:50070</value>
  38. </property>
  39. <property>
  40. <name>dfs.namenode.http-address.mycluster.nn2</name>
  41. <value>node2:50070</value>
  42. </property>
  43. <!-- qjournal:相关配置 JN在哪里启动,数据存储在哪个磁盘的位置 -->
  44. <property>
  45. <name>dfs.namenode.shared.edits.dir</name>
  46. <value>qjournal://node1:8485;node2:8485;node4:8485/mycluster</value>
  47. </property>
  48. <property>
  49. <name>dfs.journalnode.edits.dir</name>
  50. <value>/usr/local/bigdata/journal/data</value>
  51. </property>
  52. <!-- HA角色切换的代理类,和实现方法,使用的免密的相关配置 -->
  53. <property>
  54. <name>dfs.client.failover.proxy.provider.mycluster</name>
  55. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  56. </property>
  57. <property>
  58. <name>dfs.ha.fencing.methods</name>
  59. <value>sshfence</value>
  60. </property>
  61. <property>
  62. <name>dfs.ha.fencing.ssh.private-key-files</name>
  63. <value>/home/hadoop/.ssh/authorized_keys</value>
  64. </property>
  65. <!--开启HA;开启自动化 启动zkfc-->
  66. <property>
  67. <name>dfs.ha.automatic-failover.enabled</name>
  68. <value>true</value>
  69. </property>
  70. </configuration>

2.2.3 修改slaves文件,代表dataNode的是哪些节点

  1. node5
  2. node2
  3. node4

分发修改完配置的hadoop文件:

  1. scp -r hadoop-ha/ node2:`pwd`
  2. scp -r hadoop-ha/ node4:`pwd`
  3. scp -r hadoop-ha/ node5:`pwd`

2.3 在三台机器上node1,node2,node4 启动journalnode

  1. cd /sbin
  2. ./hadoop-daemon.sh start journalnode

在三台机器山执行jps查看是否有JournalNode进程,并且查看日志文件是否有报错

hadoop-hadoop-journalnode-node*.log

2.4 在主节点格式化namenode

  1. cd bin/
  2. ./hdfs namenode -format

此时在node1执行了format,就不要在其他机器执行了,而且也仅仅在集群部署的第一次执行,之后也不再执行

在刚刚的机器上启动namenode

./hadoop-daemon.sh start namenode

jps验证进程

第二台namenode机器:

  1. cd bin/
  2. ./hdfs namenode -bootstrapStandby

 执行同步文件原数据的命令,把信息同步过来

2.5 格式化zookeeper

./hdfs zkfc -formatZK

查看zookeeper的数据,会多出此目录

2.4  启动hdfs

  1. cd sbin
  2. ./start-dfs.sh

 验证hdfs:

http://192.168.1.201:50070/dfshealth.html#tab-overviewhttp://192.168.1.202:50070/dfshealth.html#tab-overview

node1 192.168.1.101为active

node2 192.168.1.102为standby

 

使用hdfs 创建目录 上传文件:

./hdfs dfs -mkdir -p /usr/test

停止hadoop:

使用./stop-dfs.sh 即可

3. 部署高可用yarn

resourceManager

nodeManager

HOST

IP

NameNode

JN

SNN

DN

ZKFC

ZK

resourManagernodeManager

node01

192.168.1.201

node02

192.168.1.202

*

node04

192.168.1.204

**

node05

192.168.1.205

**

3.1 修改配置文件

在主节点node1下

mapred-site.xml

yarn-site.xml

分发配置文件

  1. scp -r mapred-site.xml yarn-site.xml node2:`pwd`
  2. scp -r mapred-site.xml yarn-site.xml node4:`pwd`
  3. scp -r mapred-site.xml yarn-site.xml node5:`pwd`

nodeManager也是由slaves文件来控制的

启动yarn:

./sbin/start-yarn.sh

此时在node1上启动的resourcemanager是没有此进程的,日志也是报错的,咱们要启动的是resourcemanager是在node4和node5上,这个起来后发现配置文件是,没有配置node1的就会把这个进程杀死

 在node4和Node5上启动

./sbin/yarn-daemon.sh start resourcemanager

 验证:

jps验证node4和node5上的resourcemanager进程

通过在zookeeper上的数据验证

http://192.168.1.204:8088/cluster/nodes进入后点击About

http://192.168.1.205:8088/cluster/cluster

在node4显示是active的节点,在node5显示是STARTED的节点

 

 使用官方demo验证

  1. cd usr/local/bigdata/hadoop-ha/share/hadoop/mapreduce
  2. /usr/local/bigdata/hadoop-ha/bin/hdfs dfs -mkdir -p /data/in
  3. /usr/local/bigdata/hadoop-ha/bin/hdfs dfs -mkdir -p /data/out
  4. /usr/local/bigdata/hadoop-ha/bin/hdfs dfs -put ./testWordCount.txt /data/in
  5. /usr/local/bigdata/hadoop-ha/bin/hdfs dfs -ls /data/in
  6. /usr/local/bigdata/hadoop-ha/bin/hadoop jar hadoop-mapreduce-examples-2.8.5.jar wordcount /data/in /data/out/result

执行

 /usr/local/bigdata/hadoop-ha/bin/hadoop jar hadoop-mapreduce-examples-2.8.5.jar wordcount /data/in /data/out/result

 /usr/local/bigdata/hadoop-ha/bin/hdfs dfs -ls /data/out/result

 usr/local/bigdata/hadoop-ha/bin/hdfs dfs -cat /data/out/result/part-r-00000

 配置完成,关闭集群:
node01: stop-dfs.sh
node01: stop-yarn.sh (停止nodemanager)
node03,node04: yarn-daemon.sh stop resourcemanager
node02、node03、node04:zkServer.sh stop

启动:

  1. #1. 启动zookeeper集群 node2 node4 node5
  2. /usr/local/bigdata/zookeeper-3.4.13/bin/zkServer.sh start /usr/local/bigdata/zookeeper-3.4.13/conf/zoo.cfg
  3. #node01:
  4. /usr/local/bigdata/hadoop-ha/sbin/start-dfs.sh
  5. #node01:
  6. /usr/local/bigdata/hadoop-ha/sbin/start-yarn.sh
  7. #node04,node05:
  8. source /home/hadoop/.bash_profile
  9. cd /usr/local/bigdata/hadoop-ha/sbin/
  10. ./yarn-daemon.sh start resourcemanager

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/651153
推荐阅读
相关标签
  

闽ICP备14008679号