Hadoop進(jìn)行HA 配置后再配置Federation

Hadoop HA 配置完成后, 確實NameNode的穩(wěn)定性得到了保障,不過,問題接踵而來,那就是NameNode壓力過大。隨著數(shù)據(jù)的越來越多,NameNode的壓力越來越大,timeout出現(xiàn)的概率越來越多,如果能夠多創(chuàng)建幾個NameNode來提供服務(wù),確實,能夠減緩壓力!因此,Hadoop又引入了Federation機(jī)制!
如果你在你的Hadoop集群上搭建了HBase集群,那么第一個想拆分的NameNode就是HBase,此時nameService變成了: hadoop和hbase

一個NameNode的配置首先是要配置其
首先是在原來的HDFS上面修改hdfs-site.xml,添加新的 nameservices : hbase

<property>
<name>dfs.nameservices</name>
<value>hadoop,hbase</value>
<description>Comma-separated list of nameservices.</description>
</property>

并添加HBase nameservice 具體配置:


<property>
<name>dfs.ha.namenodes.hbase</name>
<value>nn4,nn5</value>
<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.hbase.nn4</name>
<value>nn4ss:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.hbase.nn5</name>
<value>nn5ss:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.hbase.nn4</name>
<value>nn4ss:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.hbase.nn5</name>
<value>nn5ss:50070</value>
</property>

當(dāng)把一個NameNode拆分成多個NameNode之后,上面需要設(shè)置一個統(tǒng)一的viewFS,否則每次需要指定相應(yīng)的nameService,為了在ls時候能不指定nameService,則需要在所有的nameService上加上統(tǒng)一的viewFS,同時要修改core-site.xml中的fs.defaultFS,使得默認(rèn)情況下指向統(tǒng)一的viewFS。
修改core-site.xml中fs.defaultFS為viewfs://Federation/

<property>
<name>fs.defaultFS</name>
<value>viewfs://Federation/</value>
<description>Specifies the NameNode and the default file system,
in the form hdfs://namenode-host:namenode-port/. The default value is file///.
The default file system is used to resolve relative paths; for example, if fs.default.name or fs.defaultFS
is set to hdfs://mynamenode/, the relative URI /mydir/myfile resolves to hdfs://mynamenode/mydir/myfile.
Note: for the cluster to function correctly, the namenode part of the string
must be the hostname (for example mynamenode) not the IP address.</description>
</property>

同時,當(dāng)我們指定了統(tǒng)一的viewFS后,下面的路徑需要于真實的nameService中的路徑相對應(yīng),則需要創(chuàng)建mountTable.xml文件,并指明viewFS下的路徑與nameService中的路徑的對應(yīng)的關(guān)系。
在core-site.xml中添加:

<xi:include href="/etc/hadoop/conf/mountTable.xml" />

創(chuàng)建mounTable.xml,并指明viewFS下的路徑與nameService中的路徑的對應(yīng)的關(guān)系

<property>
<name>fs.viewfs.mounttable.Federation.homedir</name>
<value>/user</value>
</property>
<property>
<name>fs.viewfs.mounttable.Federation.link./user</name>
<value>hdfs://hadoop/user</value>
</property>
<property>
<name>fs.viewfs.mounttable.Federation.link./data</name>
<value>hdfs://hadoop/data</value>
</property>
<property>
<name>fs.viewfs.mounttable.Federation.link./tmp</name>
<value>hdfs://hadoop/tmp</value>
</property>
<property>
<name>fs.viewfs.mounttable.Federation.link./hbase</name>
<value>hdfs://hbase/hbase</value>
</property>

fs.viewfs.mounttable.Federation.link./hbase 指定的是HBase在HDFS上的路徑,因為我們將HBase從之前單一的NameNode中拆分出來,并提供了新的NameNode(nn4,nn5),所以我們在這邊將viewFS下的hbase對應(yīng)到nameService為hbase的路徑下。
此時,nameService為hadoop,即第一個NameNode的配置成功了。你還想配置第二個nameService,首先在新的nameService(nn4,nn5)上安裝hadoop,并將之前配置好的文件拷貝過來。然后更改新的NameNode所依賴的信息。

因為每個NameNode的QJM和HA Zookeeper都是不一樣的,因此需要根據(jù)每個NameNode的情況來設(shè)置各自的QJM和HA Zookeeper。

例如修改HBase nameService的配置:



<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nn4ss:8485;nn5ss:8485;nn6ss:8485/hbaseQjournal</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>ha.zookeeper.quorum</name>
<value>nn4ss:2181,nn5ss:2181,nn6ss:2181</value>
<description>
A list of ZooKeeper server addresses, separated by commas, that are
to be used by the ZKFailoverController in automatic failover.
</description>
</property>

參考:
https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/Federation.html
http://blog.csdn.net/skywalker_only/article/details/40373643

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容