联盟实际上是一个单独的集群,集群里面包含很多的NameService
共享同样的DataNode,同一份数据只上传一份,block块相同,一个集群中删除,另一个集群中还是存在的.同一份数据只是在namespace中注册了一下.
联盟是共享同一个datanode,相同的数据还是一份
viewfs跨隶属于同一个hdfs联盟的hdfs
联盟的好处是扩展了Namenode
搭建federation(多了federation配置)
ns1的namenode:hadoop4 ns2的namenode:hadoop5 datanode:hadoop4,hadoop5,hadoop6
1.1配置文件(hadoop-env.sh,core-site.xml)
1.1.1 hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
1.1.2 core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> <property> <name>fs.viewfs.mounttable.default.link./ns1</name> <value>hdfs://hadoop4:9000/</value> </property> <property> <name>fs.viewfs.mounttable.default.link./ns2</name> <value>hdfs://hadoop5:9000</value> </property>
1.1.3 hdfs-site.xml
<property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.nameservices</name> <value>ns1,ns2</value> </property> <property> <name>dfs.ha.namenodes.ns1</name> <value>hadoop101</value> </property> <property> <name>dfs.namenode.rpc-address.ns1.hadoop101</name> <value>hadoop4:9000</value> </property> <property> <name>dfs.namenode.http-address.ns1.hadoop101</name> <value>hadoop5:50070</value> </property> <property> <name>dfs.ha.namenodes.ns2</name> <value>hadoop102</value> </property> <property> <name>dfs.namenode.rpc-address.ns2.hadoop102</name> <value>hadoop5:9000</value> </property> <property> <name>dfs.namenode.http-address.ns2.hadoop102</name> <value>hadoop5:50070</value> </property>
1.1.6 slaves
hadoop2 hadoop3 hadoop4
1.2 删除其他节点的hadoop文件夹,然后把hadoop4上的hadoop文件夹复制到hadoop4、hadoop5、hadoop6节点
1.3 格式化namenode、启动namenode
在hadoop4上执行hadoop/bin/hdfs namenode -format -clusterId clusterid1
在hadoop4上执行hadoop/sbin/hadoop-daemon.sh start namenode
[[clusterId的值与hadoop4上执行的clusterId的值完全相同。如果不同,就不属于同一个federation]]
在hadoop5上执行hadoop/bin/hdfs namenode -format -clusterId clusterid1
在hadoop5上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
1.4 启动datanode
在hadoop4上执行hadoop/sbin/hadoop-daemons.sh start datanode
1.5 启动resourcemanager和nodemanager
在hadoop4上执行 hadoop/sbin/start-yarn.sh start resourcemanager
1.2.验证:
viewFS是跨隶属于同一个federation的多个hdfs的文件管理系统。
使用hadoop4:50070/dfsclusterhealth.jsp查看集群情况
使用hadoop/bin/hdfs dfs -ls viewfs:///统一查看联邦中的数据内容