hadoop2.0 federation的配置
上一篇文章《hadoop2.0 federation介绍》介绍了hadoop2.0 federation的基本架构和基本原理,本文接着先介绍单独配置federation,在下一篇文章中会继续介绍同时配置HA和federation。1 准备
文中描述的机器角色包含2个namenode:
[*] namenode1
[*] namenode2
其他机器角色本文中不涉及的可以参考《hadoop2.0的安装和基本配置》一文。
2 federation的结构
我们假定hadoop集群的clusterid是hellokitty,有2个namespace/name service,分别是“mycluster”和“yourcluster”,分别在namenode1和namenode2上,分别挂载在viewfs的“/my”和“/your”目录下。如下图所示:
3 federation的配置
federation的配置只涉及到core-site.xml和hdfs-site.xml两个配置文件,其他配置可以文件参考《hadoop2.0的安装和基本配置》一文。
3.1 core-site.xml
fs.defaultFS
viewfs:///
fs.viewfs.mounttable.default.link./my
hdfs://namenode1/
fs.viewfs.mounttable.default.link./your
hdfs://namenode2/
hadoop.tmp.dir
/home/tmp/hadoop2.0
[*] fs.defaultFS
这里是配置viewfs,为各个namespace提供一个统一的视图(viewfs)
[*] fs.viewfs.mounttable.default.link./my
把namespace(name service)“mycluster”挂载到“/my”目录下
[*] fs.viewfs.mounttable.default.link./your
把namespace(name service)“yourcluster”挂载到“/your”目录下
说明:以上3项的配置值是为了方便统一查看各个namespace/name service的目录和文件,不是必须的,可以不用配置。
3.2 hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
/home/dfs/name
dfs.datanode.data.dir
/home/dfs/data
dfs.datanode.edit.dir
/home/dfs/edit
dfs.permissions
false
dfs.nameservices
mycluster,yourcluster
dfs.namenode.rpc-address.mycluster
namenode1:8020
dfs.namenode.rpc-address.yourcluster
namenode2:8020
dfs.namenode.http-address.mycluster
namenode1:50070
dfs.namenode.http-address.yourcluster
namenode2:50070
4 启动
在namenode1上执行格式化
$HADOOP_HOME/bin/hdfs namenode -format –clusterId hellokitty
在namenode2上执行格式化
$HADOOP_HOME/bin/hdfs namenode -format –clusterId hellokitty
注意:namenode1和namenode2上的clusterid要保持一致。
在namenode1启动namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
在namenode2启动namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
然后启动各个datanode
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
5 检查
每个datanode都会连接到namenode1和namenode2,在namenode1和namenode2的HDFS监控页面都能看到所有的datanode
http://namenode1:50070/dfshealth.jsp
http://namenode2:50070/dfshealth.jsp
6 测试
因为配置了viewfs和挂载目录(注意在hadoop客户机上也需要同样的配置),你可以运行
$HADOOP_HOME/bin/hdfs dfs -ls /
你可以看到namespace(name service)“mycluster”和“yourcluster”对应的目录“/my”和“/your”。
你也可以不通过viewfs直接查看每个namenode/namespace的目录和文件
$HADOOP_HOME/bin/hdfs dfs -ls hdfs://namenode1/ $HADOOP_HOME/bin/hdfs dfs -ls hdfs://namenode2/
上面两个命令分别等价于以下两个命令:
$HADOOP_HOME/bin/hdfs dfs -ls /my $HADOOP_HOME/bin/hdfs dfs -ls /your
7 实战tips
federation虽然有多个namenode,但还是存在单点的问题,需要把每个federation的每个namenode配置成HA。
在下一篇文章中,我们会继续介绍在federation的基础上配置HA。
参考资料:
http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/Federation.html
页:
[1]