Hadoop学习五:hdfs federation
2016-04-11 21:52
309 查看
Hadoop学习五:hdfs federation
标签(空格分隔): hadoopHadoop学习五hdfs federation
一概述
一,概述
1,为什么需要使用hdfs federationNamespace(命名空间)的限制
由于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 /
`
相关文章推荐
- js 上传图片预览
- js日历
- document.ready和onload的区别——JavaScript文档加载完成事件
- Js DOM节点属性
- Sublime Text 快速折叠CSS代码到一行
- bootstrap的table表头固定tbody滚动
- H5 优化
- Sublime Text 3 搭建 React.js 开发环境
- Sublime Text 3 搭建 React.js 开发环境
- byte[]与ByteBuffer相互转化
- NameNode中数据节点的保存(1)——Host2NodesMap
- JavaScript中数组去除重复
- JS实现div块的拖放,调换位置
- 关于编译报错“dereferencing pointer to incomplete type...
- fastjson生成和解析json数据
- 从Node.js的child_process模块来学习父子进程之间的通信
- CSS3实战之box-shadow篇
- js练习题三:使div变色 密码提示框
- jQuery Validate(表单验证)例子
- 浅谈javascript的this指向