HDFS(NameNode)的联盟:Federation,配置HDFS联盟,多个NameNode节点同时存活,根据代理配置的路由规则处理客户端不同的请求,实现负载均衡,同时也可以缓存更多的元信息,它与HA的区别在于,联盟是多个NameNode都是active,可以存储更多的元信息。
一、联盟与HA的联系和区别
1、也有多个NameNode
2、跟HA的区别:这些NameNode都是active状态
3、作用:
(1)缓存更多的元信息
(2)实现负载均衡
二、搭建HDFS的联盟
(1)规划
NameNode:bigdata112 bigdata113
DataNode:bigdata114 bigdata115
(2)在bigdata112上配置安装hadoop
(2.1)解压
(2.2)配置hadoop-env.sh中的java环境
export JAVA_HOME=/training/jdk1.8.0_144
(2.3)配置core-site.xml
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/training/hadoop-2.7.3/tmp</value>
</property>
(2.4)配置mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(2.5)配置yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata12</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(2.6)配置slaves
bigdata14
bigdata15
(2.7)配置hdfs-site.xml
<!--指定hdfs的nameservice,联盟是ns1,ns2-->
<property>
<name>dfs.nameservices</name>
<value>ns1,ns2</value>
</property>
<!-- ns1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>bigdata112:9000</value>
</property>
<!-- ns1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>bigdata112:50070</value>
</property>
<property>
<name>dfs.namenode.secondaryhttp-address.ns1</name>
<value>bigdata112:50090</value>
</property>
<!-- ns2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>bigdata113:9000</value>
</property>
<!-- ns2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns2</name>
<value>bigdata113:50070</value>
</property>
<property>
<name>dfs.namenode.secondaryhttp-address.ns2</name>
<value>bigdata113:50090</value>
</property>
<!--副本-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(2.8)配置core-site.xml,增加路由规则
<property>
<name>fs.viewfs.mounttable.xdl1.homedir</name>
<value>/home</value>
</property>
<property>
<name>fs.viewfs.mounttable.xdl1.link./movies</name>
<value>hdfs://bigdata114:9000/movies</value>
</property>
<property>
<name>fs.viewfs.mounttable.xdl1.link./mp3</name>
<value>hdfs://bigdata115:9000/mp3</value>
</property>
<property>
<name>fs.default.name</name>
<value>viewfs://xdl1</value>
</property>
注意:如果路由规则太多,可以单独创建一个xml文件(mounTable.xml)
(3)将112上的hadoop拷贝到113、114、115上
(4)对NameNode进行格式化
在112和113两个namenode节点上格式化hdfs namenode -format -clusterId xdl1
(5)启动
在112上启动Hadoopstart-all.sh
(6)在DataNode节点上创建响应的目录
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/194150.html