hadoop配置参数
2020-03-23 本文已影响0人
洛丽塔的云裳
1、配置优先级
配置文件或参数 | 说明 |
---|---|
hadoop-default.xml | 集群默认配置,一般不建议修改 |
hadoop-site.xml | 客户端配置,建议存放通用配置,以下规范主要针对文件支持hadoop -conf conf/hadoop-site-xxx.xml格式指定客户端配置文件 |
格式 -D "key=value" | (1) 一般放在hadoop 具体命令的后面,如杀死任务 hadoop job -D XXX=XXX -kill job_xxxx; (2) 格式 -D "key=value",可以存在多个-D参数 |
2、基本参数
默认hadoop-default.xml格式
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- NEEDED TO CHANGE -->
<property>
<name>hadoop.job.ugi</name>
<value>username,password</value>
<description>username, password used by client</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode:port</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>mapred.job.tracker</name>
<value>jobtracker:port</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
参数 | 建议值 | 说明 |
---|---|---|
hadoop.job.ugi | 此为访问集群的用户名和密码。在hdfs上,文件的所属都是按照ugi区分的,和linux机器的登录账号无关。提交计算作业和访问hdfs的用户名与密码 | 格式username,password |
fs.default.name | 此为hadoop集群存储hdfs地址,建议使用域名 | 格式hdfs://namenode:port |
mapred.job.tracker | Hadoop集群计算master地址,建议使用域名 | 格式jobtracker:port |
mapred.job.queue.name | 任务提交的队列。通常ugi对应可以提交的队列。如果没有预算资源队列,原则上不准提交任务 | 格式default |
mapred.job.map.capacity | map的最大并发 | 一般非重要任务的并发不要设置太大,否则影响核心任务的运行。任务如果已经跑起来了,可以通过该命令修改: hadoop job -set-map-capacity <job-id> <map-capacity>比如 hadoop job -set-map-capacity job_20150507164539_1806465 1000 |
mapred.job.reduce.capacity | reduce的最大并发 | 同上,并且注意reduce并发设置过大,可能导致抢了map的槽位;任务如果已经跑起来了,可以通过该命令修改: hadoop job -set-reduce-capacity <job-id> <map-capacity> 比如 hadoop job -set-map-capacity job_20150507164539_1806465 1000 |
mapred.job.priority | 任务的优先级 | priority一共有五种:VERY_HIGH HIGH NORMAL LOW VERY_LOW; 任务如果已经跑起来了,可以通过该命令修改: hadoop job -set-priority <job-id> <priority> 比如 hadoop job -set-priority job_20150507164539_1806465 HIGH |
mapred.map.capacity.per.tasktracker | 一台计算节点机器最多同时调度多少个你的map任务 | 有些任务比较重型,或者特别吃某种资源,如果不设置该值,可能造成慢节点 |
mapred.reduce.capacity.per.tasktracker | 同上,对应调度reduce任务 | |
dfs.block.size | 块大小 | 默认是268435456字节,如果你的文件都是不到1G且接近,建议该值设置1073741824 避免太多小文件浪费inode |
map压缩:mapred.compress.map.output;mapred.map.output.compression.codec | 指对于那种map和reduce阶段都有的任务,map输出到本地的时候压缩,然后压缩后的数据由shuffle拿到reduce端。节省带宽和拉数据时间。 | |
整体任务的输出压缩mapred.output.compress;mapred.output.compression.codec;mapred.output.compression.type | 整体任务的压缩是指整个任务最重的数据存储到hdfs的时候,采用压缩后的格式存储。节省存储空间。如果任务是纯map的,map的输出就是整个任务的输出,也同样有效。 |