Hadoop学习五:hdfs federation

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架构
Hadoop学习五:hdfs federation_第1张图片

二,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 / 

`

你可能感兴趣的:(hadoop)