Hadoop中HA元数据如何备份

这篇文章主要介绍Hadoop中HA元数据如何备份,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

NFS方式
一、Server 端配置 (root@hz-search-zookeeper-01)
su - hbase -c "mkdir /home/hbase/hadoop_nfs && chmod 777 /home/hbase/hadoop_nfs"
echo '/home/hbase/hadoop_nfs 172.37.0.202(rw)' >> /etc/exports
   service nfs restart
二、Client 端配置 (hadoop namenode)
su - hbase -c "mkdir -p /home/hbase/hadoop_nfs/name"
/etc/init.d/nfslock start
mount -t nfs 172.37.0.201:/home/hbase/hadoop_nfs/ /home/hbase/hadoop_nfs/name
echo 'mount -t nfs 172.37.0.201:/home/hbase/hadoop_nfs/ /home/hbase/hadoop_nfs/name' >> /etc/rc.d/rc.local
三、配置dfs.name.dir为两份,并重启 hadoop 使其生效
<property>
<name>dfs.name.dir</name>
<value>/home/admin/name/,/home/admin/hadoop_nfs/name</value>
</property> 

QJM方式

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

配置ZK集群,参照我的另一篇博文ZooKeeper集群安装配置
hdfs-site.xml
追加namenode服务名称
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
追加namenode服务的节点,一个nameservice最多两个节点
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>172.37.0.202:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>172.37.0.201:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>172.37.0.202:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>172.37.0.201:50070</value>
</property>
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://172.37.0.201:8485;172.37.0.202:8485;172.37.0.203:8485/mycluster</value>
</property>
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/root/.ssh/id_rsa</value>
</property>
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>

core-site.xml
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/path/to/journal/node/local/data</value>
</property>
<property>
   <name>ha.zookeeper.quorum</name>
   <value>172.37.0.201:2181,172.37.0.202:2181,172.37.0.203:2181</value>
 </property>
    
在ZK上初期化HA,在一个namenode节点上执行就可以了
$ hdfs zkfc -formatZK
在每个节点上都得执行下面的命令, 启动journalnode
hadoop-daemon.sh start journalnode
   [root@slave2  logs]# jps
    12821 JournalNode
在各个节点运行
 hadoop namenode -format
运行start-dfs.sh
start-yarn.sh
察看状态:namenode
16753 QuorumPeerMain
18743 ResourceManager
18634 DFSZKFailoverController
18014 JournalNode
18234 NameNode
15797 Bootstrap
19571 Jps
18333 Datanode
18850 NodeManager

Datanode
1715 Datanode
1869 NodeManager
1556 JournalNode
1142 QuorumPeerMain
2179 Jps

搭建好以后,jps查看相关进程,用kill -9 删除active的nn,通过hdfs haadmin -DFSHAAdmin -getServiceState nn1可以查看以前standby的NN已经active,执行查看等操作也都正常。想要在启动kill掉的namenode,用sbin/hadoop- daemon.sh start namenode

重新设置Hadoop HA
在namenode机器上停止
Stop-dfs.sh
Stop-yarn.sh

所有机器上停止ZK
zkServer.sh  stop

删除所有机器zk的临时文件
rm -rf /tmp/hadoop-root/zookeeper/version-2

删除所有机器JournalNode临时文件
rm -rf /home/hadoop/hadoop-root/journal/node/local/data/*
删除所有机器namenode,datanode文件
rm -rf /home/hadoop/hadoop-root/dfs/name/*
rm -rf /home/hadoop/hadoop-root/dfs/data/*
启动所有机器的ZK
zkServer.sh start
在ZK上初期化HA,在一个namenode节点上执行就可以了
 hdfs zkfc -formatZK
在每个节点上都得执行下面的命令, 启动journalnode
hadoop-daemon.sh start journalnode
在namenode节点上运行
 hadoop namenode -format
启动hadoop
start-dfs.sh
start-yarn.sh

查看节点状态
http://172.37.0.201:50070/dfshealth.jsp
http://172.37.0.202:50070/dfshealth.jsp

以上是“Hadoop中HA元数据如何备份”这篇文章的所有内容,感谢各位的阅读!希望分享内容对大家有帮助,更多相关知识,欢迎关注编程之家行业资讯频道!

相关文章

今天小编给大家分享一下excel图案样式如何设置的相关知识点,...
这篇文章主要讲解了“win10设置过的壁纸如何删除”,文中的讲...
这篇“Xmanager怎么显示远程linux程序的图像”文章的知识点大...
今天小编给大家分享一下xmanager怎么连接linux的相关知识点,...
这篇“如何重置Linux云服务器的远程密码”文章的知识点大部分...
本篇内容介绍了“Linux云服务器手动配置DNS的方法是什么”的...