阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.0 federation的配置

119次阅读
没有评论

共计 3712 个字符,预计需要花费 10 分钟才能阅读完成。

上一篇文章《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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3712字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中