我们在向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来加载其配置信息。请开发者注意。
相关推荐
本话题将详细探讨在Maven仓库中关于Hadoop以及与Hadoop相关的Hive依赖。 Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供了高容错性的分布式文件系统,使得数据可以在多台服务器...
以下是关于Hadoop的一些核心知识点,以及可能在这些实例中涉及的内容。 1. **Hadoop架构**:Hadoop主要由两个核心组件构成,HDFS(Hadoop Distributed File System)和MapReduce。HDFS负责数据的分布式存储,而...
在Hadoop2.7.1的中文文档中,你会找到关于配置参数的详细解释,包括核心配置、HDFS配置和MapReduce配置。例如,`hdfs-site.xml`用于配置HDFS,`mapred-site.xml`则用于配置MapReduce。此外,还有关于集群部署、安全...
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生态系统中,Windows平台上的开发和运行通常比Linux环境更为复杂,因为Hadoop主要设计为在Linux上运行。然而,随着Hadoop的普及,开发者们也找到了在Windows上搭建和测试Hadoop环境的方法。标题提到的"hadop...
在本文中,我们将深入探讨如何在Red Hat Linux操作系统上安装Hadoop。Hadoop是一个开源的分布式计算框架,由Apache软件基金会开发,它允许在廉价硬件上处理和存储大量数据。在Red Hat Linux环境下安装Hadoop涉及到多...
根据提供的文件信息,我们可以提炼出以下关于Hadoop官方中文文档的知识点。 首先,文档标题为“Hadoop官方中文文档”,这意味着文档是Apache Hadoop项目的官方指南,且已经被翻译成中文,以便中文读者更容易理解和...
3. **YARN(Yet Another Resource Negotiator)**:在Hadoop 2.x版本中引入,作为资源管理器,负责集群中的任务调度和资源分配,将原本在MapReduce中的资源管理和计算任务分离,提高了系统的灵活性和效率。...
《实战Hadoop中的源码》一书,由刘鹏教授编写,旨在引领读者深入理解Hadoop这一开源大数据处理框架的内部机制,为通往云计算的道路上提供一条清晰的路径。Hadoop是Apache软件基金会的重要项目,它以其分布式计算模型...
在`path`变量中添加`%HADOOP_HOME%\bin`,使Hadoop命令能在命令行中直接使用。 5. **配置HDFS**: 编辑`hdfs-site.xml`,设置HDFS的基本配置,如副本数量(default.replication)通常设为1,因为Windows单机环境...
书中还涵盖了Hadoop生态系统中的其他关键组件,如YARN(Yet Another Resource Negotiator),它是Hadoop的资源管理系统,负责调度和管理集群中的计算资源。还有HBase,一个基于Hadoop的分布式NoSQL数据库,用于实时...
这份中文文档为广大的Hadoop学习者提供了宝贵的资源,旨在帮助读者理解和掌握分布式存储与计算的基础知识,以及如何在实际项目中有效利用Hadoop。 Hadoop是Apache软件基金会开发的一个开源框架,主要设计用于处理和...
标题中的"hadoop/bin/hadoop.dll"指出这是一款与Hadoop框架相关的动态链接库(DLL)文件,它位于Hadoop安装目录的"bin"子目录下。在Windows操作系统中,DLL文件是程序运行所必需的组件,它们包含了可执行文件在运行...
**hadoop.dll** 是一个动态链接库文件,它包含了Hadoop在Windows系统中运行所需的特定功能。这个文件通常与winutils.exe一起使用,为Hadoop的Java API提供底层支持。例如,当Java程序需要与HDFS交互时,会调用这个...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是这个框架的一个稳定版本,它包含了多个改进和优化,以提高性能和稳定性。在这个版本中,Winutils.exe和hadoop.dll是两...
本文将深入探讨Hadoop 2.6.5版本中与Windows环境相关的两个关键组件:winutils.exe和hadoop.dll,以及它们在Hadoop安装和运行过程中的作用。 Hadoop最初是为Linux操作系统设计的,但在Windows环境中运行Hadoop需要...
6. 性能优化:通过对源码的研究,可以了解如何调整配置参数,优化Hadoop集群的性能,如Block大小、Replication Factor、I/O缓冲区大小等。 7. 开发与测试:源码还包含了Hadoop的开发和测试框架,这对于理解如何为...
在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...
(这是Hadoop的基础) 2.必须ssh无密码登录 3./etc/host 里配置 master和slaves 4.修改/etc/hostname 主机名 5、/etc/profile的java和Hadoop配置路径 6.hadoop namenode format 7./hadoop/etc/slaves这个文件里必须...