您好,登錄后才能下訂單哦!
這篇文章主要介紹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元數據如何備份”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。