标签:
----------------------------------------------------------------------------------------------
3.搭建federation(多了federation配置)
----------------------------------------------------------------------------------------------
nameservice
ns1的namenode:haoop0
ns2的namenode:haoop1
datanode:hadoop2、hadoop3、hadoop4
3.1 配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves)
3.1.1 hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
3.1.2 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value> //dfs.nameservices之一
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./ns0</name>
<value>hdfs://hadoop0:9000/</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./ns1</name>
<value>hdfs://hadoop1:9000</value>
</property>
在HDFS之上,又搞了一层文件管理系统。跨HDFS的文件系统屏蔽了两个HDFS
使用逻辑名 ./ns0
3.1.3 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ns1,ns2</value>
</property>
【使用federation时,使用了1个HDFS集群。这里抽象出两个NameService实际上就是给这1个HDFS集群起了个别名。名字可以随便起,相互不重复即可】
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>hadoop101</value>
</property>
【指定NameService是ns1时的namenode有哪些,这里的值也是逻辑名称,名字随便起,相互不重复即可】
<property>
<name>dfs.namenode.rpc-address.ns1.hadoop101</name>
<value>hadoop0:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1.hadoop101</name>
<value>hadoop0:50070</value>
</property>
<property>
<name>dfs.ha.namenodes.ns2</name>
<value>hadoop102</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns2.hadoop102</name>
<value>hadoop1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns2.hadoop102</name>
<value>hadoop1:50070</value>
</property>
3.1.6 slaves
hadoop2
hadoop3
hadoop4
3.1.7 删除其他节点的hadoop文件夹,然后把hadoop0上的hadoop文件夹复制到hadoop1、hadoop2、hadoop3、hadoop4节点
3.5 格式化namenode、启动namenode
在hadoop0上执行hadoop/bin/hdfs namenode -format -clusterId clusterid1
在hadoop0上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
在hadoop1上执行hadoop/bin/hdfs namenode -format -clusterId clusterid1
【clusterId的值与hadoop0上执行的clusterId的值完全相同。如果不同,就不属于同一个federation】
在hadoop1上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
3.6 启动datanode
在hadoop0上分别执行hadoop/sbin/hadoop-daemons.sh start datanode
3.8 启动resourcemanager和nodemanager
在hadoop0上执行 hadoop/sbin/start-yarn.sh start resourcemanager
4.验证:
viewFS是跨隶属于同一个federation的多个hdfs的文件管理系统。
使用hadoop0:50070/dfsclusterhealth.jsp查看集群情况
使用hadoop/bin/hdfs dfs -ls viewfs:///统一查看联邦中的数据内容
hdfs dfs -ls viewfs:///
分别上传到集群hadoop0 和hadoop1 实际上只上传了一个文件
HDFS联盟的搭建
标签:
原文地址:http://www.cnblogs.com/thinkpad/p/4690738.html