這篇文章將為大家詳細講解有關hadoop2.0中namenode ha如何配置,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)是專業(yè)的伍家崗網(wǎng)站建設公司,伍家崗接單;提供成都做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行伍家崗網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
hdfs的ha,主要的問題是active和standby的元數(shù)據(jù)信息同步問題,之前的解決方案有avatar等一系列。共享存儲可以采用NFS,bookkeeper等相關存儲。在這里我們采用Journal來實現(xiàn)共享存儲,主要是因為配置簡單。
虛擬機準備:三臺,列表如下:
機器名 | 功能 | IP |
master1 | namenode(active),JournalNode,zookeeper | 192.168.6.171 |
master2 | namenode,JournalNode,zookeeper | 192.168.6.172 |
datanode1 | datanode,JournalNode,zookeeper | 192.168.6.173 |
軟件版本:hadoop 2.4.1 zookeeper3.4.6
下載hadoop2.4.1后,解壓,解壓zookeeper
第一步先配置zookeeper集群
將zookeeper解壓后的文件夾下的conf下的zoo_sample.cfg重命名為zoo.cfg
修改配置
dataDir=/cw/zookeeper/ 我這里修改為/cw/zookeeper/ 確保該文件夾存在
在該文件尾部添加集群配置
server.1=192.168.6.171:2888:3888
server.2=192.168.6.172:2888:3888
server.3=192.168.6.173:2888:3888
將修改后的zookeeper文件夾分發(fā)到其他兩臺機器上
scp -r zookeeper-3.4.6 root@192.168.6.172:/cw/
scp -r zookeeper-3.4.6 root@192.168.6.173:/cw/
配置每臺機器的pid
在192.168.6.171機器上執(zhí)行
echo "1" >> /cw/zookeeper/myid
在192.168.6.172機器上執(zhí)行
echo "2" >> /cw/zookeeper/myid
在192.168.6.173機器上執(zhí)行
echo "3" >> /cw/zookeeper/myid
啟動zookeeper,每臺分別執(zhí)行
./zkServer.sh start
都啟動完成后,可以通過查看日志確認是否啟動OK,或者執(zhí)行 ./zkServer.sh status來查看每一個節(jié)點的狀態(tài)。
---------------------------------------------------華立分割 hadoop開始----------------------------------------------------------------------------配置hadoop的相關參數(shù)
hadoop-env.sh主要配置java_home的路徑
core-site.xml配置內(nèi)容如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://myhadoop</value>
myhadoop是namespace的id
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>192.168.6.171,192.168.6.172,192.168.6.173</value>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>myhadoop</value>對應之前的namespace
<description>
Comma-separated list of nameservices.
as same as fs.defaultFS in core-site.xml.
</description>
</property>
<property>
<name>dfs.ha.namenodes.myhadoop</name>
<value>nn1,nn2</value>每一個nn的id編號
<description>
The prefix for a given nameservice, contains a comma-separated
list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).
</description>
</property>
<property>
<name>dfs.namenode.rpc-address.myhadoop.nn1</name>
<value>192.168.6.171:8020</value>
<description>
RPC address for nomenode1 of hadoop-test
</description>
</property>
<property>
<name>dfs.namenode.rpc-address.myhadoop.nn2</name>
<value>192.168.6.172:8020</value>
<description>
RPC address for nomenode2 of hadoop-test
</description>
</property>
<property>
<name>dfs.namenode.http-address.myhadoop.nn1</name>
<value>192.168.6.171:50070</value>
<description>
The address and the base port where the dfs namenode1 web ui will listen on.
</description>
</property>
<property>
<name>dfs.namenode.http-address.myhadoop.nn2</name>
<value>192.168.6.172:50070</value>
<description>
The address and the base port where the dfs namenode2 web ui will listen on.
</description>
</property>
<property>
<name>dfs.namenode.servicerpc-address.myhadoop.n1</name>
<value>192.168.6.171:53310</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.myhadoop.n2</name>
<value>192.168.6.172:53310</value>
</property>
下部分為對應的文件存儲目錄配置
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///cw/hadoop/name</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table(fsimage). If this is a comma-delimited list
of directories then the name table is replicated in all of the
directories, for redundancy. </description>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://192.168.6.171:8485;192.168.6.172:8485;192.168.6.173:8485/hadoop-journal</value>
<description>A directory on shared storage between the multiple namenodes
in an HA cluster. This directory will be written by the active and read
by the standby in order to keep the namespaces synchronized. This directory
does not need to be listed in dfs.namenode.edits.dir above. It should be
left empty in a non-HA cluster.
</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///cw/hadoop/data</value>
<description>Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited
list of directories, then data will be stored in all named
directories, typically on different devices.
Directories that do not exist are ignored.
</description>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<description>
Whether automatic failover is enabled. See the HDFS High
Availability documentation for details on automatic HA
configuration.
</description>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/cw/hadoop/journal/</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.myhadoop</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/yarn/.ssh/id_rsa</value>
<description>the location stored ssh key</description>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>1000</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>8</value>
</property>
</configuration>
以上所涉及的文件夾需要手工建立,如不存在會出現(xiàn)異常。
以后配置完成后,將配置好的hadoop分發(fā)到所有集群節(jié)點。同時每一個節(jié)點建立需要的文件夾。
下面開始格式化zk節(jié)點,執(zhí)行:./hdfs zkfc -formatZK
執(zhí)行完畢后,啟動ZookeeperFailoverController,用來監(jiān)控主備節(jié)點的狀態(tài)。
./hadoop-daemon.sh start zkfc 一般在主備節(jié)點啟動就可以
下一步啟動共享存儲系統(tǒng)JournalNode
在各個JN節(jié)點上啟動:hadoop-daemon.sh start journalnode
下一步,在主NN上執(zhí)行./hdfs namenode -format格式化文件系統(tǒng)
執(zhí)行完畢后啟動主NN./hadoop-daemon.sh start namenode
在備用NN節(jié)點先同步NN的元數(shù)據(jù)信息,執(zhí)行./hdfs namenode -bootstrapStandby
同步完成后,啟動備用NN ./hadoop-daemon.sh start namenode
由于zk已經(jīng)自動選擇了一個節(jié)點作為主節(jié)點,這里不要手工設置。如想手工設置主備NN可以執(zhí)行
./hdfs haadmin -transitionToActive nn1
啟動所有的datanode
分別打開192.168.6.171:50070和192.168.6.172:50070
可以執(zhí)行相關的hdfs shell命令來驗證集群是否正常工作。
下面來kill掉主節(jié)點的NN
kill -9 135415
可以看到已經(jīng)成功切換。
關于“hadoop2.0中namenode ha如何配置”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
新聞標題:hadoop2.0中namenodeha如何配置
URL分享:http://chinadenli.net/article32/joscpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、移動網(wǎng)站建設、網(wǎng)站建設、軟件開發(fā)、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)