接下来是跟MapReduce目录结构有关的参数。首先看两个参数,分别为在core-default.xml中定义的hadoop.tmp.dir,其默认值为/tmp/hadoop-${user.name},另一个为定义在mapred-default.xml中的mapred.local.dir,该参数指定了保存MapReduce中间数据文件的目录,其默认值为${hadoop.tmp.dir}/mapred/local。在下面的学习中将会直接引用mapred.local.dir。TaskTracker拥有本地目录,目录${mapred.local.dir}/taskTracker/用于创建本地缓存和本地作业。可以定义多个本地目录(分布在多个硬盘上)并且每个文件名被半随机地分配到本地目录中。当作业启动时,TaskTracker创建与本地目录(该目录由配置参数指定)相关的本地作业目录。这样,TaskTracker目录结构就像下面描述的:
- ${mapred.local.dir}/taskTracker/distcache/:所有用户的作业的公有分布式缓存。该目录保存本地的公有分布式缓存,这样本地的公有分布式缓存就可以在所有用户的所有任务和作业之间共享。
- ${mapred.local.dir}/taskTracker/$user/distcache/ :特定用户的作业的私有分