一、目录配置参数说明
参数 描述 备注 位置Hadoop.tmp.dir 临时目录,其它临时目录的父目录。 本地或hdfs
dfs.name.dir nameNode的元数据(fsimage)存储目录。 以逗号隔开,hdfs会把数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉。 namenode本地
dfs.name.edits.dir nameNode的事务日志(edits)存储目录。
fs.checkpoint.dir secondaryNamenode的元数据(fsimage)存储目录。 以逗号隔开,hdfs会把数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉。 secondarynamenode本地
fs.checkpoint.edits.dir secondaryNamenode的事务日志(edits)存储目录。
dfs.data.dir dataNode的数据目录 以逗号隔开,hdfs会把数据存储在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉。 datanode本地
mapred.local.dir MapReduce产生的中间数据存放目录。Jobtracker存放job中间数据,tasktracker存放task中间数据 以逗号隔开,hdfs会把数据存储在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉。 jobtracker/tasktracker本地
mapred.temp.dir mapreduce临时共享文件存放目录,用于各个task用到的共享文件 hdfs
mapred.system.dir mapreduce执行时的共享目录,用于存储job执行时的一些控制信息 hdfs
mapred.job.tracker
.persist.jobstatus.dir job状态信息持久存放目录 与mapred.job.tracker.persist.jobstatus.hours,mapred.job.tracker.persist.jobstatus.active两个参数配合使用 jobtracker本地或hdfs
mapreduce.jobtracker
.staging.root.dir 每个正在运行的作业文件存放区(job.jar ob.split job.splitmetainfo job.xml libjars等) hdfs
二、注意事项:
1、与mapred.local.dir相关的参数
* mapred.local.dir.minspacestart:在mapreduce运行任务之前,检查temporary 目录下是否还有该选项配置的空闲空间,如果少于该配置,则map或reduce task不会分配到该TaskTracker上,以避免由于磁盘空间不足导致的task失败。默认设置为0,disable该功能
* mapred.local.dir.minspacekill:如果该磁盘卷下剩余的磁盘空间不足该配置,则将正在运行的Task 杀掉。默认为0,diabled该功能
另,如果服务器有多个块设备最好将mapred.local.dir设置成多个目录,每个目录对应一个块设备,这样多个task在同一个TaskTracker上运行的时候,就可以分别写不同的磁盘写入点,以增大作业运行的磁盘吞吐率。
2、与dfs.data.dir相关的参数
* dfs.datanode.du.reserved:dfs写文件块时,如果当前datanode上的dfs.data.dir下剩余磁盘空间不足该选项配置的空间大小,就不往该datanode继续写数据块
* dfs.datanode.du.pct:同dfs.datanode.du.reserved,不过配置值为一个百分比
最好预留些空间,避免写文件失败。
3、建议配额
mapred.local.dir.minspacestart = slots * dfs.block.size
mapred.local.dir.minspacekill = slots/2 * dfs.block.size
dfs.datanode.du.reserved = dfs.block.size * dfs.replication #最少留这么多吧,建议留大些。