Hadoop配置文件

原创 2016年08月28日 17:29:53

Hadoop集群中每个计算节点都有自己的一组配置文件,有2种类型的配置文件:

  1. 默认配置文件:core-default.xml、hdfs-default.xml、mapred-default.xml、yarn-default.xml
  2. 特定配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

2中的配置项覆盖1中相同的配置项

1文件是只读的,可以从classpath中的jar文件中直接获取该文件

在第二类文件中有大量的变量,通过定义和修改可以满足控制Hadoop配置的需要

Hadoop系统默认配置文件:

配置文件 描述
core-default.xml 默认的核心Hadoop属性配置文件,该配置文件在hadoop-common-2.7.3.jar中
hdfs-default.xml 默认的HDFS属性配置文件,该配置文件在hadooop-hdfs-2.7.3.jar中
mapred-default.xml 默认的MapReduce属性配置文件,该配置文件在hadoop-mapreduce-2.7.3.jar中
yarn-default.xml 默认的YARN属性配置文件,该配置文件在hadoop-yarn-common-2.7.3.jar中

针对集群特定的配置文件一般在$HADOOP_CONF_DIR文件夹中,这些配置文件中的配置项可以覆盖上表中的默认配置文件中的相同配置项,他们是集群最终的配置值。这些特定的配置文件中没有涉及的配置项,会使用默认的配置文件中的配置项

Hadoop集群特定配置文件:

配置文件 描述
core-site.xml 特定的通用Hadoop属性配置文件,该配置文件会覆盖core-default.xml中相同配置项
hdfs-site.xml 特定的通用HDFS属性配置文件,该配置文件会覆盖hdfs-default.xml中相同配置项
mapred-site.xml 特定的通用MapReduce属性配置文件,该配置文件会覆盖mapred-default.xml中相同配置项
yarn-site.xml 特定的通用YARN属性配置文件,该配置文件会覆盖yarn-default.xml中相同配置项

配置Hadoop守护进程

脚本 描述
hadoop-ev.sh 设置Java主目录
yarn-env.sh 设置不同日志文件位置
mapred-env.sh 设置用于各种守护进程的JVM选项

守护进程配置变量:

守护进程 环境变量
名称节点 HADOOP_NAMEN_OPTS
数据节点 HADOOP_DATANODE_OPTS
辅助名称节点 HADOOP_SECONDARYNAMENODE_OPTS
资源管理器 YARN_RESOURCEMANAGER_OPTS
节点管理器 YARN_NODEMANAGER_OPTS

Hadoop配置文件的优先级:

Hadoop集群中的每个节点必须要有配置文件的一个拷贝,包括集群的客户端节点,这些配置文件以如下次序应用到系统中(优先级从高到低):

  1. MapReduce热舞初始化的时候,有JobConf或Job对象指定的值
  2. 客户端节点的*-site.xml
  3. 从节点的*-site.xml
  4. *-defalut.xml文件中的默认值(这个文件是集群中所以节点都相同的)

如果要设置某个属性不被客户端或程序修改,需要在属性值标记为final:

<property>
    <name>{PROPERTY_NAME}</name>
    <value>{PROPERTY_VALUE}</value>
    <final>true</final>
</property>
  • 如果一个属性的从节点上标记为final,那么客户端上*-site.xml配置文件不能修改这个属性的值
  • 如果客户端节点上的配置文件将某个属性设为final,那么作业中就午饭修改这个属性的值

在这是属性中,所以以dir结尾的属性都可以配置为一个以逗号分隔的本地文件目录列表,这样可以提高磁盘I/O

1、core-site.xml

官方详细配置参考文档:
http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/core-default.xml

core-site.xml是 Hadoop的主要配置文件之一,它包含对整个Hadoop通用的配置。它在集群的每个主机上都存在。基本上,core-site.xml的变量可以改变或者定义分布式文件系统的名字、临时目录以及其他与网络配置相关的参数。

  • 对于小规模集群,所有的服务器通常都是通过一台交换机连接起来的。因此,本地性指标只有2个:on-machine(联机)和off-machine(脱机)。从HDFS向NameNode的本地驱动器加载数据时,NameNode仅调度传输到本地DataNode的一份副本,然后从集群中随机挑选另外2台机器存储数据的复制件。
  • 对于跨多个机架的大型Hadoop集群,就务必保证每个机架上都有数据的复制件。这样,因为复制件的存在,所以在发生交换机故障时才不会造成数据块不可用。

core-site.xml文件中的关键属性:

属性 描述
hadoop-tmp-dir 其他所有领书目录的根目录,默认值:/tmp/hadoop-${user.name}
fs.defaultFS 在没有特殊配置的情况下,HDFS客户端使用的默认路径前缀由该属性配置
io.file.buffer-size 该属性指定了文件流的缓冲大小,这个换错那个的大小应该是硬件页面大小的整数倍,它决定了数据读取和写入操作过程中缓冲了多少数据,默认值4096
io.byte.per.checksum Hadoop徐彤在数据写入时会计算校验和,并在读取数据是进行校验,这个过程对用户透明。该参数定义了多大的数据量进行一次校验和计算,默认值512字节
io.compression.codecs 一个由逗号分隔的可用压缩编码类的列表,用于压缩\解压缩数据

压缩编码类类列表:

  • org.apache.hadoop.io.compress.DefaultCodec
  • org.apache.hadoop.io.compress.GzipCodec
  • org.apache.hadoop.io.compress.BZiP2Codec
  • org.apache.hadoop.io.compress.DeflateCodec
  • org.apache.hadoop.io.compress.SnappyCodec

2、hdfs-*.xml

官方详细配置参考文档:
http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

hdfs-*.xml文件集用于配置HDFS系统的运行时属性和各个数据节点上文件的物理存储相关的属性

hdfs-*.xml文件中的关键属性:

属性 描述
dfs.namenode.name.dir 名称节点本地文件系统中存放元数据文件表(fsimage文件)的目录
dfs.namenode.edits.dir 名称节点本地文件系统中存储元数据事物处理文件(edits文件)的目录
dfs.namenode.checkpoint.dir 辅助名称节点中存放临时fsimage文件的目录,该临时fsimage文件用来在名称节点可访问的本地\网络文件系统中进行合并
dfs.namenode.checkpoint.edits.dir 辅助名称节点中存放从名称节点拷贝过来的edits文件的目录,该文件用来与已经拷贝到由dfs.namenode.checkpoint.dir属性指定的目录中行的fsimage文件合并,该合并在辅助名称节点可访问的本地\网络文件系统中进行
dfs.namenode.checkpoint.period 两个检查点之间的间隔秒数,经过该属性配置的时间后,检查点操作就开始执行,该操作会合并从名称节点拷贝过来的edits文件和fsimage文件
dfs.blocksize 指定新文件的默认数据快大小,单位字节,morning为128MB(hadoop2.0)数据块的大小不是一个系统全局参数,可以针对单个文件进行指定
dfs.replication 默认的数据块备份数量,可以针对单个文件指定,默认为3
dfs.namenode.handler.count 名称节点与数据节点通信的服务器线程数,默认为10,(推荐设置为集群节点数的10%,最小为10)
dfs.datanode.du.reserved 每卷磁盘中的保留存储空间(字节),该存储空间保留供非HDFS使用,默认为0,(推荐设置min(10GB或磁盘大小的25%))
dfs.hosts 该属性指定了指向一个文件的完整路径名,指向的文件中包含了一个运行与名称节点通信的主机列表,如果未设置,集群中所以节点都运行和名称节通信

3、mapred-site.xml

官方详细配置参考文档:
http://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

MRv1被YARN取代,这是YARN和MRv1的对比:
http://blog.csdn.net/wee_mita/article/details/52717645

mapred-site.xml是提高Hadoop MapReduce性能的关键配置文件,这个配置文件保护了与CPU、内存、磁盘I/O和网络相关的参数。

mapred-site.xml文件中的关键属性:

属性 描述
mapreduce.framework.name 觉得MR颙是提交到YARN集群还是使用本地作业执行器在本地运行,可设置为yarn或local
mapred.child.java.opts 运行Map或Reduce任务的JVM堆大小,默认值-Xmx200m。设置的值应该<=mapreduce.*.memory.mb,否则任务会失败
mapreduce.map.memory.mb 设定分配给运行Map任务的容器的内存大小,默认值1024MB
mapreduce.reduce.memory.mb 设定分配给运行Reduce任务的容器的内存大小,默认值1024MB
mapreduce.cluster.local.dir MapReduce存储中间数据文件的本地目录(推荐设置不超过75%的硬盘空间来存放HDFS,25%的空间存放中间数据文件)
mapreduce.jobtracker.handler.count 作业跟踪器(相当于YARN)的服务器进程数量(推荐为集群从节点数的4%,默认值为10)
mapreduce.job.reduce.slowstart.completedmaps 在作业中调度Reducer之前,作业中Map完成百分比,(推荐0.5~0.8)默认为0.05
mapreduce.jobtracker.taskscheduler 该类负责任务的调度,默认值FIFO,属性值为org.apache.hadoop.mapred.JobQueueTaskScheduler(推荐使用公平调度器FairScheduler或者计算能力调度器CapacityScheduler)
mapreduce.map.maxattempts 每个map任务重试的最大次数,默认值4
mapreduce.mreduce.maxattempts 每个reduce任务重试的最大次数,默认值4

4、yarn-site.xml

官方详细配置参考文档:
http://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

MRv1被YARN取代,这是YARN和MRv1的对比:
http://blog.csdn.net/wee_mita/article/details/52717645

yarn-site.xml文件用来配置由YARN框架提供的通用服务守护进程的属性,比如资源管理器和节点管理器,yarn-*.xml文件中定义的一些关键属性:

属性 描述
yarn.resourcemanager.hostname 资源管理器所在的节点的主机名
yarn.resourcemanager.address 运行资源管理器服务的主机名及其端口号,默认值http://${yarn.resourcemanasger.hostname}:8032
yarn.nodemanager.local-dirs 一个以逗号分隔的本地文件列表,节点管理器初始化而生成的容器,在容器运行过程中存储文件的目录列表,(此类文件通常是附加配置文件,通过分布式缓存分发每个计算节点的作业运行需要的数据文件函数库)
yarn.nodemanager.aux-services 一个逗号分隔的服务列表,这些服务由节点管理器执行,默认为空(blank),可以使用服务读完mapreduce_shuffle来配置Hadoop的安装
yarn-nodemanager.resource.memory-mb 可分配给容器的物理内存总和,这些容器是由在节点上运行的节点管理器来初始化的,默认值8192,在为运行操作系统和其他Hdoop守护进程预留足够空间之后,该值可以适当增大
yarn.nodemanagervmem-pmem-ratio 在配置容器的内存限制时,使用虚拟内存和物理内存的比值,虚拟内存超过设定上限,YARN框架会启动容器失败
yarn.scheduler.minimum-allocation-mb 启动每个容器,需要向资源管理器申请的最小内存量(MB),低于该配置值的内存请求会被忽略,并按照该值来请求内存使用量,默认值1024
yarn.scheduler.maxmum-allocation-mb 启动每个容器,需要向资源管理器申请的最大内存量(MB),高于该配置值的内存请求会被忽略,并按照该值来请求内存使用量,默认值8192
yarn.scheduler.minimum-allociation-vcores 启动每个容器,需要向资源管管理器申请的最小虚拟CPU内核数,低于该值的请求不会生效,并会按照该设定值类分配,默认值为1
yarn.scheduler.maxmum-allociation-vcores 启动每个容器,需要向资源管管理器申请的最大虚拟CPU内核数,高于该值的请求不会生效,并会按照该设定值类分配,默认值为32
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Hadoop集群配置文件备份

hadoop配置文件参数详解

一般来说,hadoop主要有三个默认参数文件,分别为core-default.xml,hdfs-default.xml,mapred-default.xml。 其它需要用户配置的参数文件为core-...

hadoop配置文件

hadoop的简单配置文件

Hadoop配置文件

部分内容参考:http://www.linuxqq.net/archives/964.html       Hadoop有三个重要的配置文件:core-site.xml,hdfs-site.xml...

hadoop-windows下配置文件

  • 2016-12-09 11:50
  • 1.12MB
  • 下载

hadoop三个配置文件的参数含义说明

1       获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)