您的位置:首页 > Web前端

Hadoop学习五:hdfs federation

2016-04-11 21:52 309 查看

Hadoop学习五:hdfs federation

标签(空格分隔): hadoop

Hadoop学习五hdfs federation
一概述

一,概述

1,为什么需要使用hdfs federation

Namespace(命名空间)的限制

由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的heap size的限制。50G的heap能够存储20亿(200 million)个对象,这20亿个对象支持4000个DataNode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个DataNode从4T增长到36T,集群的尺寸增长到8000个DateNode。存储的需求从12PB增长到大于100PB

隔离问题

由于HDFS仅有一个NameNode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序

性能的瓶颈

由于是单个NameNode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量。

2,hdfs federation架构



二,hdfs federation的配置和测试

分配角色

hadoop001.com.cn———-namenode

hadoop003.com.cn———-namenode

修改hdfs-site.xml文件:

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ns1,ns2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>hadoop001.com.cn:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>hadoop001.com.cn:50070</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>hadoop003.com.cn:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.ns2</name>
<value>hadoop003.com.cn:50070</value>
</property>
</configuration>


修改core-site.xml文件:

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001.com.cn:8020</value>
</property>
</configuration>


将hdfs-site.xml和core-site.xml拷贝到其他服务器上

[hadoop001@hadoop001 hadoop]$ scp -r hdfs-site.xml hadoop002.com.cn:/opt/app/hadoop-2.5.0/etc/hadoop/

[hadoop001@hadoop001 hadoop]$ scp -r hdfs-site.xml hadoop002.com.cn:/opt/app/hadoop-2.5.0/etc/hadoop/

[hadoop001@hadoop001 hadoop]$ scp -r hdfs-site.xml hadoop003.com.cn:/opt/app/hadoop-2.5.0/etc/hadoop/

[hadoop001@hadoop001 hadoop]$ scp -r hdfs-site.xml hadoop003.com.cn:/opt/app/hadoop-2.5.0/etc/hadoop/


修改hadoop003服务器上的core-site.xml文件

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop003.com.cn:8020</value>
</property>
</configuration>


每个NameNode 节点格式化NameNode

$ bin/hdfs namenode -format -clusterId hdfs-cluster


每个NameNode 节点启动NameNode

$ sbin/hadoop-daemon.sh start namenode


每个数据节点上启动DataNode

$ sbin/hadoop-daemon.sh start datanode


测试

[hadoop001@hadoop001 hadoop-2.5.0]$ bin/hdfs dfs -put etc/hadoop/hdfs-site.xml /

[hadoop001@hadoop003 hadoop-2.5.0]$ bin/hdfs dfs -put etc/hadoop/core-site.xml /






`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: