Hadoop CDH4.5 基本配置文件配置讲解

hadoop主要包含三个配置文件:core-site.xml,hdfs-site.xml,mapred-site.xml/yarn-site.xml

1 core-site.xml

hadoop.tmp.dir   默认值为/tmp/。尽量手动配置该选项,否则默认都存放在/tmp目录下了,如果系统使多磁盘的,则可以为每个磁盘都设置一个临时目录。这样有利于提高hdfs和mapreduce的IO效率

fs.default.name		默认值为http:///。默认文件系统的名称,不设置则使用本地文件昔日,一般设置为hdfs://namenode:port

fs.trash.interval	默认值0。这是hdfs开启垃圾箱功能的选项。值为垃圾箱删除文件的时间。默认单位为分钟。一般建议开启。设置为0,表示关闭垃圾箱

fs.checkpoint.dir	默认值为${hadoop.tmp.dir}/dfs/namesecondary

fs.checkpoint.edits.dir		secondary namenode检查点存放编辑日志的目录

fs.checkpoint.period	检查点执行周期。默认为3600秒

fs.checkpoint.size	编辑日志的大小。单位:字节。默认为67108864,64M

fs.inmemory.size.mb	reduce阶段用户合并map输出的内存限制。这里设置200,可根据自身硬件设备进行更改测试。

io.file.buffer.size	默认值4096 SequenceFiles在读写中可以使用的缓存大小,这里设置为131072。它决定了在一次读写操作时有多少数据被缓冲。貌似这个参数在新版本里变为了:file.stream-buffer-size,单位bytes 。

io.bytes.per.checksum	默认值512  默认每512存入Kb的值后就对存入的数据进行CRC32校验。该值必须比io.file.buffer.size小

io.skip.checksum.errors		默认值为false,如果为true,则在checksum时遇到错误,会跳过错误,而不是抛出异常

local.cache.size	保存缓存最大大小。默认为10737418240个字节,即10G

hadoop.logfile.size	默认值10000000   hadoop每个日志文件大小的最大值

hadoop.logfile.count	默认值10	日志文件的最大个数
2 hdfs-site.xml


dfs.namenode.logging.level 	 默认值info   输出日志类型

dfs.datanode.address 	默认值hostname:50010	datanode节点的TCP服务端口和地址

dfs.datanode.http.address	默认值hostname:50075	datanode节点的HTTP协议访问地址和端口

dfs.datanode.ipc.address	默认值hostname:50020	datanode节点的IPC服务地址和端口

dfs.datanode.handler.count	默认值3		datanode节点的服务连接线程处理数

dfs.http.address	默认值hostname:50070	datanode节点HTTP协议访问地址和端口

dfs.name.dir   默认值${hadoop.tmp.dir}/dfs/name		存储本地namenode节点数据的目录

dfs.blocksize	这个就是hdfs里一个文件块的大小了,默认64M,这里设置134217728,即128M,太大的话会有较少map同时计算,太小的话也浪费可用map个数资源,而且文件太小namenode就浪费内存多。根据需要进行设置。

dfs.permissions.supergroup	默认值hadoop	hdfs文件系统的超级用户组

dfs.data.dir 	默认值${hadoop.tmp.dir}/dfs/data	datanode节点存放数据的目录

dfs.replication		默认值3		默认的块复制数量

dfs.replication.interval   默认值3	namenode节点计算datanode节点复制工作的时间

dfs.block.size  	默认值67108864		默认文件块大小为64M

dfs.df.interval		默认值60000	磁盘空间统计间隔为6秒

dfs.client.block.write.retries 		默认值3		块写入出错时的重试次数

dfs.heartbeat.interval    默认值3	datanode节点的心跳检测时间间隔

dfs.namenode.handler.count	hadoop系统里启动的任务线程数,这里改为40,同样可以尝试该值大小对效率的影响变化进行最合适的值的设定。

dfs.datanode.failed.volumes.tolerated		能够导致DN挂掉的坏硬盘最大数,默认0就是只要有1个硬盘坏了,DN就会shutdown。
3 mapred-site.xml


hadoop.job.history.location	job历史文件保存路径,无可配置参数,也不用写在配置文件里,默认在logs的history文件夹下。

hadoop.job.history.user.location	用户历史文件存放位置

io.sort.factor	排序文件的时候一次同时最多可并流的个数,这里设置100。新版本为mapreduce.task.io.sort.factor。

io.sort.mb	排序内存使用限制,这里设置200m。单位为M,新版本看说明貌似改成了这个mapreduce.task.io.sort.mb。

mapred.job.tracker	链接jobtracker服务的配置项,默认使hostname:port

mapred.job.tracker.http.address		默认值hostname:50030	jobtracker的页面服务监听地址

mapred.job.tracker.handler.count	默认15		jobtracker服务的线程数

mapred.local.dir	mapred做本地计算数据存储使用的目录,可以配置多个目录,这些目录分布在多个硬盘上

mapred.system.dir	mapred存放控制文件所使用的文件夹,可配置多块硬盘,逗号分隔。

mapred.temp.dir		mapred共享的临时文件夹路径,解释同上

mapred.local.dir.minspacestart		默认值0G	本地运算文件夹剩余空间低于该值则不在本地做计算。字节配置,默认0

mapred.local.dir.minspacekill		本地计算文件夹剩余空间低于该值则不再申请新的任务,字节数,默认0

mapred.map.tasks	默认值2		默认每个job所使用的map数,意思是假设设置dfs块大小为64M,需要排序一个60M的文件,也会开启2个map线程,当jobtracker设置为本地是不起作用。

mapred.reduce.tasks	默认值1		解释同上

mapred.jobtracker.restart.recover	重启时开启任务恢复,默认false

mapred.child.java.opts	jvms启动的子线程可以使用的最大内存。改为-Xmx1024m,内存再大也可以继续增加。但是如果一般任务文件小,逻辑不复杂用不了那么多的话太大也浪费。

mapreduce.jobtracker.handler.count	JobTracker可以启动的线程数,一般为tasktracker节点的4%

mapreduce.reduce.shuffle.parallelcopies		reuduce shuffle阶段并行传输数据的并行线程数。这里改为10。集群大可以增大。默认值5

mapreduce.tasktracker.http.threads	map和reduce是通过http进行数据传输的,这个是设置传输的并行线程数

mapreduce.map.output.compress	map输出是否进行压缩,如果压缩就会多耗cpu,但是减少传输时间,如果不压缩,就需要较多的传输带宽。配合mapreduce.map.output.compress.codec使用,默认是org.apache.hadoop.io.compress.DefaultCodec,可以根据需要设定数据压缩方式。

mapreduce.map.output.compress.codec	输出结果所使用的编解码器,也可以用gz或者bzip2或者lzo或者snappy等

map.sort.class	map  输出排序所使用的算法,默认快排

mapreduce.jobtracker.hosts.filename	允许连接JT的TT服务器列表,空值全部允许

mapreduce.tasktracker.map.tasks.maximum		每服务器允许启动的最大map槽位数。

mapreduce.tasktracker.reduce.tasks.maximum	每服务器允许启动的最大reduce槽位数

mapreduce.jobtracker.hosts.exclude.filename	禁止连接JT的TT列表,节点摘除是很有作用。

mapreduce.reduce.shuffle.merge.percent		reduce归并接收map的输出数据可占用的内存配置百分比。类似mapreduce.reduce.shuffle.input.buffer.percen属性。

mapreduce.reduce.shuffle.memory.limit.percent		一个单一的shuffle的最大内存使用限制。
4 yarn-site.xml


resourcemanager:

yarn.resourcemanager.address	ResourceManager监听TCP服务的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等

yarn.resourcemanager.scheduler.address	ResourceManager对ApplicationMaster开放的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。

yarn.resourcemanager.resource-tracker.address	ResourceManager对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等

yarn.resourcemanager.admin.address	ResourceManager对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。

yarn.resourcemanager.webapp.address	ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。

yarn.resourcemanager.scheduler.class	启用的资源调度器主类。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。

yarn.resourcemanager.resource-tracker.client.thread-count	处理来自NodeManager的RPC请求的Handler数目。默认值50

yarn.resourcemanager.scheduler.client.thread-count	处理来自ApplicationMaster的RPC请求的Handler数目。默认值50

yarn.scheduler.minimum-allocation-mb	单个可申请的最小内存资源量。比如设置为1024,则运行MapRedce作业时,每个Task最少可申请1024MB内存。默认值1024
 
yarn.scheduler.maximum-allocation-mb	单个可申请的最大内存资源量。比如设置为3072,则运行MapRedce作业时,每个Task最多可申请3072MB内存。默认值8192

yarn.scheduler.minimum-allocation-vcores 	单个可申请的最小虚拟CPU个数。比如设置为1,则运行MapRedce作业时,每个Task最少可申请1个虚拟CPU,默认值1

yarn.scheduler.maximum-allocation-vcores	单个可申请的最大虚拟CPU个数。比如设置为4,则运行MapRedce作业时,每个Task最多可申请4个虚拟CPU,默认值32

yarn.resourcemanager.nodemanagers.heartbeat-interval-ms		NodeManager心跳间隔。默认值1000毫秒


nodemanager:

yarn.nodemanager.resource.memory-mb	NodeManager总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不 可动态修改。另外,该参数的默认值是8192MB,即使你的机器内存不够8192MB,YARN也会按照这些内存来使用。

yarn.nodemanager.vmem-pmem-ratio	每使用1MB物理内存,最多可用的虚拟内存数。默认值2.1

yarn.nodemanager.resource.cpu-vcores	NodeManager总的可用虚拟CPU个数。默认值8

yarn.nodemanager.local-dirs	中间结果存放位置,类似于1.0中的mapred.local.dir。注意,这个参数通常会配置多个目录,已分摊磁盘IO负载,默认${hadoop.tmp.dir}/nm-local-dir

yarn.nodemanager.log-dirs	日志存放地址。默认值${yarn.log.dir}/userlogs

yarn.nodemanager.log.retain-seconds	NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。默认值10800

yarn.nodemanager.aux-services		NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

yarn.log-aggregation-enable	是否启用日志聚集功能。默认值使false

yarn.log-aggregation.retain-seconds	在HDFS上聚集的日志最多保存多长时间。默认值-1

yarn.log-aggregation.retain-check-interval-seconds	多长时间检查一次日志,并将满足条件的删除,如果是0或者负数,则为上一个值的1/10。默认值-1

yarn.nodemanager.remote-app-log-dir	当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。默认值/tmp/logs

yarn.log-aggregation.retain-seconds	远程日志目录子目录名称(启用日志聚集功能时有效)。




附加

MapReduce相关配置参数分为两部分,分别是JobHistory Server和应用程序参数,Job History可运行在一个独立节点上,而应用程序参数则可存放在mapred-site.xml中作为默认参数,也可以在提交应用程序时单独指定,注 意,如果用户指定了参数,将覆盖掉默认参数。

MapReduce JobHistory相关配置参数:
mapreduce.jobhistory.address	MapReduce JobHistory Server地址。
mapreduce.jobhistory.webapp.address	MapReduce JobHistory Server Web UI地址。
mapreduce.jobhistory.intermediate-done-dir	MapReduce作业产生的日志存放位置。
mapreduce.jobhistory.done-dir	MR JobHistory Server管理的日志的存放位置。

MapReduce作业配置参数:
参数名称			缺省值			说明
mapreduce.job.name	 	作业名称
mapreduce.job.priority	NORMAL	作业优先级
yarn.app.mapreduce.am.resource.mb	1536	MR ApplicationMaster占用的内存量
yarn.app.mapreduce.am.resource.cpu-vcores	1	MR ApplicationMaster占用的虚拟CPU个数
mapreduce.am.max-attempts	2	MR ApplicationMaster最大失败尝试次数
mapreduce.map.memory.mb	1024	每个Map Task需要的内存量
mapreduce.map.cpu.vcores	1	每个Map Task需要的虚拟CPU个数
mapreduce.map.maxattempts	4	Map Task最大失败尝试次数
mapreduce.reduce.memory.mb	1024	每个Reduce Task需要的内存量
mapreduce.reduce.cpu.vcores	1	每个Reduce Task需要的虚拟CPU个数
mapreduce.reduce.maxattempts	4	Reduce Task最大失败尝试次数
mapreduce.map.speculative	false	是否对Map Task启用推测执行机制
mapreduce.reduce.speculative	false	是否对Reduce Task启用推测执行机制
mapreduce.job.queuename	default	作业提交到的队列
mapreduce.task.io.sort.mb	100	任务内部排序缓冲区大小
mapreduce.map.sort.spill.percent	0.8	Map阶段溢写文件的阈值(排序缓冲区大小的百分比)
mapreduce.reduce.shuffle.parallelcopies	5	Reduce Task启动的并发拷贝数据的线程数目







你可能感兴趣的:(hadoop,config)