hadoop-hdfs-ha配置-搭建

官方配置原文:

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

 

 

 

 

 

 

 

 

 

 

 

 

zookeeper搭建:

node02下:

 

 

 

配置zk环境变量:

 

 

 

 

 

 

 

 ZK配置文件:

 

 

 修改为:

 

 

 

 

 分发zk:分发给 node03 和 node04 

 

 

 

 

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

 

 node03:

 

 

 

node04:

 

 

 

 

 开启ZK服务:

node02:

 

node03:

 

node04:

 

 

 

 

 

 hadoop-HA-搭建:

 

 配置 hdfs-site.xml 文件:

 

 

 之前配置过的完全分布式的配置文件进行修改

 

 

 后面追加的内容:

#dfs.nameservices   命名空间的逻辑名称
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>


#dfs.ha.namenodes.[nameservice ID]   所有NameNode标示名称
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>


#dfs.namenode.rpc-address.[nameservice ID].[name node ID]   每个namenode监听的RPC地址
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>node01:8020</value>
</property>

<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>node02:8020</value>
</property>

#dfs.namenode.http-address.[nameservice ID].[name node ID]   每个namenode监听的http地址。
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>node01:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>node02:50070</value>
</property>




#journalnode配置信息
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node01:8485;node2:8485;node3:8485/mycluster</value>
</property>

#journalnode持久化数据目录
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/var/sxt/hadoop/ha/jn</value>
</property>


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

<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>




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

<property>
  <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property>

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



 

 

 

 

配置 core-site.xml 文件:

 

 

 

 

 

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

#hadoop.tmp.dir

<property>
  <name>hadoop.tmp.dir</name> <value>/var/sxt/hadoop/ha</value> </property>



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

 

 

 

 

 

分发修改好的文件:

 

 

 

给node01 和 node02 做免秘钥:

node01 -> node01 的免秘钥

node01 -> node02 的免秘钥

node02 -> node02 的免秘钥

node02 -> node01 的免秘钥

 

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

node02 -> node02 的免秘钥

node02 -> node01 的免秘钥

实现方式和

node01 -> node01 的免秘钥

node01 -> node02 的免秘钥 一样

 

 

node02 下:

 

node01 下:

 

 

 

 

 

 

 必须优先启动 journalnode:

 启动node01 node02 node03 的 journalnode

 

 

 

 

 

 

 

 

 

 格式化namenode:

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 启动namenode:

 

 

 

 

 

 

 

 

 

 

格式化ZKFC:

 

 

 

 

node04 下:

 

 

 

 

 

 

启动服务:

 

node01:

 

 

node02:

 

 node03:

 

 

 node04:

 zoo

 

 

 

 

 node01:50070

 

 

 node02:50070

 

 

 

 

 

 

演示:

 

杀死node01:

 

 

 

 

 

 

 

 

 

 

 

 杀死node02 的 ZKFC:

 

 

 

 

 

 

停止服务:

 node01:stop-dfs.sh

 

 

  node02:zkServer.sh stop

 

 node03:zkServer.sh stop

 

 

 node04:zkServer.sh stop

 

 

 

再次启动:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值