通过了解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 | 例子:/usr/local/data/hadoop/tmp |
fs.defaultFS | 例子:hdfs://hadoop-alone:9000 |
io.file.buffer.size | 例子:4096 |
ha.zookeeper.quorum | hadoop1:2181,hadoop2:2181,hadoop3:2181 |
2. hdfs-site.xml
配置 | 说明 |
dfs.replication | 副本数量。例子:3 |
dfs.blocksize | 块大小。例子:268435456 |
dfs.namenode.name.dir | 例子:file://${hadoop.tmp.dir}/dfs/name |
dfs.datanode.data.dir | 例子: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 | 例子:hadoop-cluster1 |
3. yarn-site.xml
配置 | 说明 |
yarn.resourcemanager.hostname | RM的hostname |
yarn.resourcemanager.address | ${yarn.resourcemanager.hostname}:8032 |
yarn.resourcemanager.scheduler.address | ${yarn.resourcemanager.hostname}:8030 |
yarn.resourcemanager.webapp.address | ${yarn.resourcemanager.hostname}:8088 |
yarn.resourcemanager.webapp.https.address | ${yarn.resourcemanager.hostname}:8090 |
yarn.resourcemanager.resource-tracker.address | ${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 | 例子:mapreduce_shuffle |
4. mapred-site.xml
配置 | 说明 |
mapreduce.framework.name | 配置资源调度框架;例子yarn |