你好,游客 登录 注册 搜索
背景:
阅读新闻

Hadoop2.0 federation的配置

[日期:2014-05-03] 来源:Linux社区  作者:sstudent [字体: ]

上一篇文章《Hadoop2.0 federation介绍》(见http://www.linuxidc.com/Linux/2014-05/101179.htm )介绍了hadoop2.0 federation的基本架构和基本原理,本文接着先介绍单独配置federation,在下一篇文章中会继续介绍同时配置HA和federation。
 
1 准备

文中描述的机器角色包含2个namenode:

namenode1

namenode2


其他机器角色本文中不涉及的可以参考《Hadoop2.0的安装和基本配置》一文 http://www.linuxidc.com/Linux/2014-05/101173.htm 。

2 federation的结构

我们假定hadoop集群的clusterid是hellokitty,有2个namespace/name service,分别是“mycluster”和“yourcluster”,分别在namenode1和namenode2上,分别挂载在viewfs的“/my”和“/your”目录下。如下图所示:

Hadoop2.0 federation的配置

3 federation的配置

federation的配置只涉及到core-site.xml和hdfs-site.xml两个配置文件,其他配置可以文件参考《hadoop2.0的安装和基本配置》一文。
 
3.1 core-site.xml

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>viewfs:///</value>

        </property>

        <property>

                <name>fs.viewfs.mounttable.default.link./my</name>

                <value>hdfs://namenode1/</value>

        </property>

        <property>

                <name>fs.viewfs.mounttable.default.link./your</name>

                <value>hdfs://namenode2/</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/home/tmp/hadoop2.0</value>

        </property>

</configuration>

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

<configuration>

        <property>

                <name>dfs.replication</name>

                <value>1</value>

        </property>

        <property>

                <name>dfs.namenode.name.dir</name>

                <value>/home/dfs/name</value>

        </property>

        <property>

                <name>dfs.datanode.data.dir</name>

                <value>/home/dfs/data</value>

        </property>

        <property>

                <name>dfs.datanode.edit.dir</name>

                <value>/home/dfs/edit</value>

        </property>

        <property>

                <name>dfs.permissions</name>

                <value>false</value>

        </property>

        <property>

                <name>dfs.nameservices</name>

                <value>mycluster,yourcluster</value>

        </property>

        <property>

                <name>dfs.namenode.rpc-address.mycluster</name>

                <value>namenode1:8020</value>

        </property>

        <property>

                <name>dfs.namenode.rpc-address.yourcluster</name>

                <value>namenode2:8020</value>

        </property>

        <property>

                <name>dfs.namenode.http-address.mycluster</name>

                <value>namenode1:50070</value>

        </property>

        <property>

                <name>dfs.namenode.http-address.yourcluster</name>

                <value>namenode2:50070</value>

        </property>

</configuration>


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://www.linuxidc.com/Linux/2014-05/101181.htm )

参考资料:

http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/Federation.html

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-05/101180.htm

linux
相关资讯       Hadoop2.0  federation 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款