Federation操作文档

原主节点信息

node1$ jps
42207 DFSZKFailoverController
3069 QuorumPeerMain
42108 JournalNode
46157 Jps
48337 NameNode

node2$ jps
44149 QuorumPeerMain
17845 ApplicationHistoryServer
14798 Jps
6844 Bootstrap
30162 JournalNode
40821 ResourceManager
21067 JobHistoryServer

node3$ jps
20728 JournalNode
32462 Jps
20827 DFSZKFailoverController
13234 QuorumPeerMain
33418 NameNode

node4$ cat VERSION
#Wed Jan 04 21:52:23 CST 2017
namespaceID=1998041515
clusterID=CID-4314a112-1c89-47fe-b692-3be441377efa
cTime=0
storageType=NAME_NODE
blockpoolID=BP-815890062-172.23.200.1-1439977331443
layoutVersion=-60


一、备份


1.配置文件备份(服务端与客户端,备份conf目录)


2.数据源备份(更新hive源数据信息时需要在MYSQL中备份相关记录源数据的表)


3.Edits与fsimage备份(40G左右-安全)


二、停集群(外挂端先隔离掉,再开启安全模式hadoop dfsadmin -safemode enter/leave)


1) 先停止yarn

stop-yarn.sh
(mr-jobhistory-daemon.sh stop historyserver)
(yarn-daemon.sh stop historyserver)


2)停止datanode

hadoop-daemons.sh stop datanode


3)停止nn1,nn2

hadoop-daemon.sh stop zkfc
hadoop-daemon.sh stop namenode

(23合并 stop-dfs.sh)


4)停止JN和ZK

(hadoop-daemon.sh stop journalnode)
./zkServer.sh stop


5)备份Fsimage(查看目录下的文件大小不再改变时再进行备份)


三、推送及修改


1).配置文件修改(修改core-site.xml、hdfs-site.xml)


hdfs-site.xml(增加内容)

  <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
   <name>dfs.nameservices</name>
   <value>ns1,ns2</value>
</property>

<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
    <name>dfs.ha.namenodes.ns1</name>
    <value>nn1,nn2</value>
</property>

<!-- ns2下面有两个NameNode,分别是nn3,nn4 -->
<property>
    <name>dfs.ha.namenodes.ns2</name>
    <value>nn3,nn4</value>
</property>

<!-- nn1的RPC通信地址 -->
 <property>
     <name>dfs.namenode.rpc-address.ns1.nn1</name>
     <value>x.x.x.x:8020</value>
</property>

<!-- nn3的RPC通信地址 -->
 <property>
     <name>dfs.namenode.rpc-address.ns2.nn3</name>
     <value>x.x.x.x:8020</value>
</property>

<!-- nn1的http通信地址 -->
<property>
     <name>dfs.namenode.http-address.ns1.nn1</name>
     <value>x.x.x.x:50070</value>
</property>

<!-- nn3的http通信地址 -->
<property>
     <name>dfs.namenode.http-address.ns2.nn3</name>
     <value>x.x.x.x:50070</value>
</property>

<!-- nn2的RPC通信地址 -->
<property>
  <name>dfs.namenode.rpc-address.ns1.nn2</name>
  <value>x.x.x.x:8020</value>
</property>

<!-- nn4的RPC通信地址 -->
<property>
  <name>dfs.namenode.rpc-address.ns2.nn4</name>
  <value>x.x.x.x:8020</value>
</property>

<!-- nn2的http通信地址 -->
<property>
   <name>dfs.namenode.http-address.ns1.nn2</name>
   <value>x.x.x.x:50070</value>
</property>

<!-- nn4的http通信地址 -->
<property>
   <name>dfs.namenode.http-address.ns2.nn4</name>
   <value>x.x.x.x:50070</value>
</property>

<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<!-- 下面两个配置需要在不同的ns上,不是在一个文件中 -->
<property>
   <name>dfs.namenode.shared.edits.dir</name>
   <value>qjournal://x.x.x.x:8485;x.x.x.x:8485;x.x.x.x:8485/ns1</value>
</property>
<property>
   <name>dfs.namenode.shared.edits.dir</name>
   <value>qjournal://x.x.x.x:8485;x.x.x.x:8485;x.x.x.x:8485/ns2</value>
</property>

<!-- 配置失败自动切换实现方式 -->
<property>
 <name>dfs.client.failover.proxy.provider.ns1</name>
 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
 <name>dfs.client.failover.proxy.provider.ns2</name>
 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>


core-site.xml


ns1

<property>
   <name>fs.defaultFS</name>
      <value>hdfs://ns1</value>
</property>


ns2

<property>
   <name>fs.defaultFS</name>
      <value>hdfs://ns2</value>
</property>


2).配置文件推送到所有节点(把修改好的配置文件推送到所有节点 ns1  ns 2有不同的配置)


四、启集群


1).ZK、JN 启动

./zkServer.sh start
hadoop-daemon.sh start journalnode


2).nn1,nn2启动

hadoop-daemon.sh start namenode


3).nn3格式化namenode

hdfs namenode -format -clusterid CID-4314a112-1c89-47fe-b692-3be441377efa


4).nn3启动

hadoop-daemon.sh start namenode


5).nn4上同步

hdfs namenode -bootstrapStandby


6).nn3格式化ZK

hdfs zkfc -formatZK       


7).nn4上启动

hadoop-daemon.sh start namenode


8).nn1,nn2   nn3,nn4

hadoop-daemon.sh start zkfc

等待fsimage加载完毕后,启动DFS  


9).nn1上启动datanode

hadoop-daemons.sh start datanode(start-dfs.sh)

测试两个NS是否正常(web及命令测试)
客户端测试hadoop是否正常(使用CMT所有测试写成脚本)


10).启动YARN

start-yarn.sh


五、回退方案


1).还原配置文件信息(脚本执行:软链接,CP)


2).重新启动集群


3).ZK、JN

./zkServer.sh start
hadoop-daemon.sh start journalnode


4).nn1,nn2

hadoop-daemon.sh start namenode    


5).nn1,nn2上分别启动ZKFC(如果NN1是主,就在NN1上先启动ZKFC;如果想让NN2为active就先启动NN2上的ZKFC)

hadoop-daemon.sh start zkfc


6).nn1上启动datanode

hadoop-daemons.sh start datanode    

7)获取nn1 的状态

hdfs haadmin -getServiceState nn1

hdfs haadmin -getServiceState nn2


7).RM上启动YARN

start-yarn.sh

(mr-jobhistory-daemon.sh start historyserver)
(yarn-daemon.sh start historyserver)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值