`
QING____
  • 浏览: 2233869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Hadoop中replication factor解惑

 
阅读更多

    我们在向hadoop写入文件时,这个文件的“replication”个数到底该如何控制?

    在hadoop server端,core-site.xml中有个参数为“file.replication”,同时在hdfs-site.xml中也有个“dfs.replication”,这两个参数到底谁可以决定文件的“replication”个数?

 

    在hadoop开发时,我们还可以在Client端配置core-site.xml和hdfs-site.xml,那么上述两个参数是否会生效呢?

 

    在hbase中,该如何决定replication个数?

 

    我最近在部署和开发时就被这么几个参数给迷惑了,hdfs-site.xml(或者hdfs-default.xml)中“dfs.replication”默认为3,core-site.xml(或者core-default.xml)中“file.replication”默认为1;对于hadoop server而言,hdfs进程将会首先加载“hdfs-default.xml”然后加载“hdfs-site.xml”,如果在hdfs-site.xml中指定了“dfs.replication”,那么此值将作为server端默认值;在此处需要提醒,“file.replication”参数值将不会发挥效果,从源码中可以看出hadoop并没有使用core-site.xml(core-default.xml)中“file.replication”参数值,因此尝试修改此值来改变hdfs的replication个数是徒劳的。

 

    对于hadoop Client开发而言,如果开发者没有引入自己的hdfs-site.xml文件,那么在创建文件时所使用的Configuration对象只是加载了默认配置(hdfs-default.xml,core-default.xml),因此“dfs.replication”仍然为3,基于“Client端配置优先”的策略,那么hadoop server端将会使用Client端hdfs-site.xml中的“dfs.replication”值。因此,如果开发者希望调整replication factor,唯一的方式,就是在Client端引入自己的hdfs-site.xml且调整此值,或者在FileSystem.create方法中手动指定replication个数。

 

    hbase从架构模式上,它在存储层面只是一个hadoop Client端;如果你希望调整hbase中数据的replication个数,我们还需要在hbase server端引入hdfs-site.xml文件,然后把这个文件放入${hbase}/conf目录下,否则hbase数据的replication将始终为3。

 

    此外需要提醒,在hbase开发时,在hbase Client端尝试引入“core-site.xml”和“hdfs-site.xml”来修改hdfs相关属性的方式是徒劳的,hbase Client只有引入的“hbase-site.xml”文件是有效的;如果希望在hbase中修改部分hadoop的属性,只能在hbase server端的“hbase-site.xml”中修改,或者额外的引入“core-site.xml”和“hdfs-site.xml”。

 

//core-default.xml
//core-site.xml
Configuration conf = new Configuration();

//ConfigUtil中将会加载:
//mapred-default.xml,mapred-site.xml
//yarn-defaut.xml,yarn-site.xml
//在初始化DistributedFileSystem时,将会加载:
//hdfs-default.xml,hdfs-site.xml
 FileSystem fs = FileSystem.get(conf);

 

     开发者new Configuration()操作只会导致加载“core-default.xml”和“core-site.xml”,其他的配置文件将不会加载。

    当开发者使用DistributedFileSystem API时将会导致加载“hdfs-default.xml”和“hdfs-core.xml”。其中FileSystem.get(conf)方法内部使用了ConfigUtil类额外的加载了“mapred”和“yarn”相关的配置文件,我们在开发mapreduce程序时经常使用ConfigUtil来加载其配置信息。请开发者注意。

1
0
分享到:
评论

相关推荐

    关于hadoop开题报告参考.pdf

    关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告参考.pdf关于hadoop开题报告...

    关于hadoop开题报告参考.docx

    关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop开题报告参考.docx关于hadoop...

    hadoop几个实例

    网上很难找的hadoop代码,很适合初学或想从事大数据方向的程序猿,心动者赶紧下载。

    Hadoop 2.7.1 中文文档

    Hadoop 2.7.1 中文文档 Hadoop 2.7.1 中文文档 Hadoop 2.7.1 中文文档

    hadoop中文乱码问题

    NULL 博文链接:https://201201314056.iteye.com/blog/2193117

    hadoop2.7.3 hadoop.dll

    在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path追加%HADOOP_HOME%\bin,有可能出现如下错误: org.apache.hadoop.io.nativeio.NativeIO$Windows....

    hadoop2.7中文文档

    hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文...

    hadoop 中文手册

    hadoop 中文手册 Hadoop文档 下面的文档是一些概念介绍和操作教程,可帮助你开始使用Hadoop。如果遇到了问题,你可以向邮件列表求助或者浏览一下存档邮件。 Hadoop快速入门 Hadoop集群搭建 Hadoop分布式文件系统...

    Hadoop 中的调度

    Hadoop 中的调度

    maven仓库中关于Hadoop的一些依赖

    Hadoop执行mapreduce和使用jdbc连接虚拟机所使用的全部maven包(修改maven仓库路径即可使用)

    Hadoop中Flume安装指南

    Hadoop中的Flume安装指南,不会的童鞋可以下载哦,有助于学习

    Hadoop2.7.1中文文档

    Hadoop2.7.1中文文档

    hadoop-3.3.4 版本(最新版)

    在 Hadoop 中,MapReduce 底层的分布式文件系统是独文模块,用户可按照约定 的一套接口实现自己的分布式文件系统,然后经过简单的配置后,存储在该文件 系统上的数据便可以被 MapReduce 处理。 官网下载速度非常缓慢...

    关于Hadoop的安装

    关于Hadoop的在Rad hat Linux下的安装资料,

    Hadoop中单词统计案例运行的代码

    Hadoop中单词统计案例运行的代码

    hadoop 中文文档

    hadoop 中文文档 hadoop命令 hadoop入门

    hadoop2.6.5中winutils+hadoop

    windows系统开发hadoop包需要的winutils.exe和hadoop.dll文件

    Hadoop权威指南-Hadoop中文文档-第三版本

    Hadoop权威指南-Hadoop中文文档-第三版本.

    hadoop安装中的网络配置

    本文详细图解了hadoop安装过程中linux的网络配置,实现了hadoop虚拟机,宿主机,外网三者互通,

    实战hadoop中的源码

    实战hadoop,源码,刘鹏,开启通向云计算的捷径

Global site tag (gtag.js) - Google Analytics