一、目录配置参数说明
参数 | 描述 | 备注 | 位置 |
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,不过配置值为一个百分比(注:从0.19版本开始已经没有这个参数了)
最好预留些空间,避免写文件失败。
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 #最少留这么多吧,建议留大些。