hadoop-hdfs-ha配置-搭建

hadoop-hdfs-ha配置-搭建_第1张图片

官方配置原文:

 http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

 

hadoop-hdfs-ha配置-搭建_第2张图片

 hadoop-hdfs-ha配置-搭建_第3张图片

 

hadoop-hdfs-ha配置-搭建_第4张图片

 

 

 hadoop-hdfs-ha配置-搭建_第5张图片

 

 hadoop-hdfs-ha配置-搭建_第6张图片

 

 

 

 

zookeeper搭建:

node02下:

hadoop-hdfs-ha配置-搭建_第7张图片

 

 hadoop-hdfs-ha配置-搭建_第8张图片

 

配置zk环境变量:

 

 

 

 

 

 

 

 ZK配置文件:

 

 hadoop-hdfs-ha配置-搭建_第9张图片

 修改为:

 hadoop-hdfs-ha配置-搭建_第10张图片

 

 

 

 分发zk:分发给 node03 和 node04 

 

 

 

 

 然后存放各自的id 和 配置zk环境变量:

 

 node03:

 

hadoop-hdfs-ha配置-搭建_第11张图片

 

 

node04:

 

hadoop-hdfs-ha配置-搭建_第12张图片

 

 

 

 开启ZK服务:

node02:

 hadoop-hdfs-ha配置-搭建_第13张图片

node03:

hadoop-hdfs-ha配置-搭建_第14张图片

 

node04:

 hadoop-hdfs-ha配置-搭建_第15张图片

 

 

 

 

 hadoop-HA-搭建:

hadoop-hdfs-ha配置-搭建_第16张图片

 

 配置 hdfs-site.xml 文件:

 

 

 之前配置过的完全分布式的配置文件进行修改hadoop-hdfs-ha配置-搭建_第17张图片

 

 

 后面追加的内容:

#dfs.nameservices   命名空间的逻辑名称

  dfs.nameservices
  mycluster



#dfs.ha.namenodes.[nameservice ID]   所有NameNode标示名称

  dfs.ha.namenodes.mycluster
  nn1,nn2



#dfs.namenode.rpc-address.[nameservice ID].[name node ID]   每个namenode监听的RPC地址

  dfs.namenode.rpc-address.mycluster.nn1
  node01:8020



  dfs.namenode.rpc-address.mycluster.nn2
  node02:8020


#dfs.namenode.http-address.[nameservice ID].[name node ID]   每个namenode监听的http地址。

  dfs.namenode.http-address.mycluster.nn1
  node01:50070


  dfs.namenode.http-address.mycluster.nn2
  node02:50070





#journalnode配置信息

  dfs.namenode.shared.edits.dir
  qjournal://node01:8485;node2:8485;node3:8485/mycluster


#journalnode持久化数据目录

  dfs.journalnode.edits.dir
  /var/sxt/hadoop/ha/jn



#这里配置HDFS客户端连接到Active NameNode的一个java类


  dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider





#dfs.ha.fencing.methods 配置active namenode出错时的处理类。当active namenode出错时,一般需要关闭该进程。处理方式可以是ssh也可以是shell

<property>
  <name>dfs.ha.fencing.methodsname> <value>sshfencevalue> property> <property> <name>dfs.ha.fencing.ssh.private-key-filesname> <value>/root/.ssh/id_dsavalue> property>

#在namenode身边启动ZKFC 开启自动故障转移
<property> <name>dfs.ha.automatic-failover.enabledname> <value>truevalue> property>
 



 

 

 

 

配置 core-site.xml 文件:

 

 

 hadoop-hdfs-ha配置-搭建_第18张图片

 

 

#fs.defaultFS 客户端连接HDFS时,默认的路径前缀。如果前面配置了nameservice ID的值是mycluster,那么这里可以配置为授权信息的一部分
<property>
  <name>fs.defaultFSname> <value>hdfs://myclustervalue> property>

#hadoop.tmp.dir

<property>
  <name>hadoop.tmp.dirname> <value>/var/sxt/hadoop/havalue> property>



#ha.zookeeper.quorum 标记三台zookeeper地址
<property>
  <name>ha.zookeeper.quorumname> <value>node02:2181,node03:2181,node04:2181value> property>

 

 

 hadoop-hdfs-ha配置-搭建_第19张图片

 

 

分发修改好的文件:

hadoop-hdfs-ha配置-搭建_第20张图片

 

 

 

给node01 和 node02 做免秘钥:

node01 -> node01 的免秘钥

node01 -> node02 的免秘钥

node02 -> node02 的免秘钥

node02 -> node01 的免秘钥

 

由于之前完全分布式node01已经和自己还有node02 做过免秘钥现在只需要做

node02 -> node02 的免秘钥

node02 -> node01 的免秘钥

实现方式和

node01 -> node01 的免秘钥

node01 -> node02 的免秘钥 一样

 

 

node02 下:

hadoop-hdfs-ha配置-搭建_第21张图片

 

node01 下:

 hadoop-hdfs-ha配置-搭建_第22张图片

 

 

 

 

 

 必须优先启动 journalnode:

 启动node01 node02 node03 的 journalnode

 

 

 

 

 

 hadoop-hdfs-ha配置-搭建_第23张图片

 

 

 

 格式化namenode:

 

 

 

我这边出现了报错信息:显示无法构建journal  后面两台服务器地址写错了

hadoop-hdfs-ha配置-搭建_第24张图片

 

 

 

 

 

 

 hadoop-hdfs-ha配置-搭建_第25张图片

 

 

 

 

 启动namenode:

 

 hadoop-hdfs-ha配置-搭建_第26张图片

 

 

 hadoop-hdfs-ha配置-搭建_第27张图片

 

hadoop-hdfs-ha配置-搭建_第28张图片

 

 

 

 

格式化ZKFC:

 

 

 hadoop-hdfs-ha配置-搭建_第29张图片

 

node04 下:

 

 hadoop-hdfs-ha配置-搭建_第30张图片

 

 

 

 

启动服务:

 

node01:

hadoop-hdfs-ha配置-搭建_第31张图片

 

 

node02:

hadoop-hdfs-ha配置-搭建_第32张图片

 

 node03:

 hadoop-hdfs-ha配置-搭建_第33张图片

 

 node04:

 zoo

 hadoop-hdfs-ha配置-搭建_第34张图片

 

 

 

 node01:50070

hadoop-hdfs-ha配置-搭建_第35张图片

 

 

 node02:50070

 hadoop-hdfs-ha配置-搭建_第36张图片

 

 

 

 

 

演示:

 

杀死node01:

hadoop-hdfs-ha配置-搭建_第37张图片

 

hadoop-hdfs-ha配置-搭建_第38张图片

 

 hadoop-hdfs-ha配置-搭建_第39张图片

 

 

 

 

 

 

 

 

 杀死node02 的 ZKFC:

 

 

hadoop-hdfs-ha配置-搭建_第40张图片

 

 

 

 

停止服务:

 node01:stop-dfs.sh

 hadoop-hdfs-ha配置-搭建_第41张图片

 

  node02:zkServer.sh stop

hadoop-hdfs-ha配置-搭建_第42张图片

 

 node03:zkServer.sh stop

 hadoop-hdfs-ha配置-搭建_第43张图片

 

 node04:zkServer.sh stop

 hadoop-hdfs-ha配置-搭建_第44张图片

 

 

再次启动:

node02、node03、node04:

zkServer.sh start

 

 

node01:

hadoop-daemon.sh  start namenode

 

node02:

hdfs namenode -bootstrapStandby

 

node01:

start-dfs.sh

 

 

手动启动historyserver。

启动命令:mr-jobhistory-daemon.sh start historyserver

关闭命令:mr-jobhistory-daemon.sh stop historyserver

转载于:https://www.cnblogs.com/LXL616/p/10859711.html

你可能感兴趣的:(hadoop-hdfs-ha配置-搭建)