通过了解hadoop各配置文件的含义,帮助理解job提交到yarn集群失败时的相关排查、以及job提交时相关配置参考。
文章目录
- 一、(只读)默认配置文件
- 二、可配置文件
- 1. core-site.xml
- 2. hdfs-site.xml
- 3. yarn-site.xml
- 4. mapred-site.xml
Hadoop 配置文件分两类:默认配置文件和可配置文件,一般可配置文件生效的优先级大于默认的配置文件。
一、(只读)默认配置文件
默认的配置文件存放在 Hadoop 的 jar 包中的位置
[core-default.xml] hadoop-common-3.1.3.jar/core-default.xml [hdfs-default.xml] hadoop-hdfs-3.1.3.jar/hdfs-default.xml [yarn-default.xml] hadoop-yarn-common-3.1.3.jar/yarn-default.xml [mapred-default.xml] hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml二、可配置文件
hadoop-env.sh 、 core-site.xml、hdfs-site.xml 、yarn-site.xml、mapred-site.xml主要的五个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
| 配置 | 说明 |
|---|---|
| hadoop-env.sh | 定义hadoop运行环境的相关配置,比如:JAVA_HOME环境变量、hadoop的JVM指定特定的选项、指定日志文件所在的目录路径、master和slave文件的位置等. |
| core-site.xml | 定义系统级别的参数,如HDFS URL、Hadoop的临时目录、用于rack-aware集群中的配置文件的配置等。优先级高于core-default.xml。 |
| hdfs-site.xml | HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等。优先级高于hdfs-default.xml。 |
| yarn-site.xml | Yarn的相关配置 |
| mapred-site.xml | 如reduce任务的默认个数、任务所能够使用内存的默认上下限等;优先级高于mapred-default.xml |
注意:Hadoop2.x和Hadoop3.x的自定义配置文件有一些改变
Hadoop2.x:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves
Hadoop3.x:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers
1. core-site.xml
核心全局配置文件
| 配置 | 说明 |
|---|---|
| hadoop.tmp.dir | 其他临时目录的父目录 属性会影响nn/snn中的元数据与datanode中的数据文件存放位置。见下面hdfs-site.xml中的描述。 例子:/usr/local/data/hadoop/tmp |
| fs.defaultFS | 默认文件系统的名称。通常指定namenode的URI地址,包括主机和端口 例子:hdfs://hadoop-alone:9000 |
| io.file.buffer.size | 在序列文件中使用的缓冲区大小,是页大小 例子:4096 |
| ha.zookeeper.quorum | zk集群,数量是奇数,且不少于三个节点 hadoop1:2181,hadoop2:2181,hadoop3:2181 |
2. hdfs-site.xml
| 配置 | 说明 |
|---|---|
| dfs.replication | 副本数量。例子:3 |
| dfs.blocksize | 块大小。例子:268435456 |
| dfs.namenode.name.dir | 存放nn元数据(fsimage)目录,如果是目录列表,则用于冗余; 例子:file://${hadoop.tmp.dir}/dfs/name |
| dfs.datanode.data.dir | dn块目录,如果是目录列表,则数据将存储在所有命名的目录中,通常存储在不同的设备上 例子:file://${hadoop.tmp.dir}/dfs/data |
| dfs.namenode.http-address | nn服务器server;0.0.0.0:50070 |
| dfs.namenode.secondary.http-address | snn服务器server;0.0.0.0:50090 |
| dfs.permissions | false |
| dfs.permissions.enabled | false |
| dfs.nameservices | hdfs集群名字; 例子:hadoop-cluster1 |
3. yarn-site.xml
| 配置 | 说明 |
|---|---|
| yarn.resourcemanager.hostname | RM的hostname |
| yarn.resourcemanager.address | RM对客户端暴露的地址,客户端通过该地址向RM提交应用程序等 ${yarn.resourcemanager.hostname}:8032 |
| yarn.resourcemanager.scheduler.address | RM对AM暴露的地址,AM通过地址向RM申请资源,释放资源等 ${yarn.resourcemanager.hostname}:8030 |
| yarn.resourcemanager.webapp.address | RM对外暴露的web http地址,用户可通过该地址在浏览器中查看集群信息 ${yarn.resourcemanager.hostname}:8088 |
| yarn.resourcemanager.webapp.https.address | web https 地址 ${yarn.resourcemanager.hostname}:8090 |
| yarn.resourcemanager.resource-tracker.address | RM对NM暴露地址,NM通过该地址向RM汇报心跳,领取任务等 ${yarn.resourcemanager.hostname}:8031 |
| yarn.scheduler.minimum-allocation-mb | 可申请的最少内存资源,以MB为单位;例子:1024 |
| yarn.scheduler.maximum-allocation-mb | 可申请的最大内存资源,以MB为单位;例子:8192 |
| yarn.nodemanager.resource.memory-mb | NM总的可用物理内存,以MB为单位。一旦设置,不可动态修改;例子:8192 |
| yarn.nodemanager.resource.cpu-vcores | 可分配的CPU个数;例子:8 |
| yarn.nodemanager.aux-services | NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序。YARN 集群为 MapReduce 程序提供的 shuffle 服务; 例子:mapreduce_shuffle |
4. mapred-site.xml
| 配置 | 说明 |
|---|---|
| mapreduce.framework.name | 配置资源调度框架;例子yarn |