0

假设我写了一个 WordCount 示例,然后在 eclipse 项目中包含一个外部 jar 文件,例如 MyJar.jar。现在,如果我将整个 WordCount 项目导出为 word.jar 文件,然后键入

$> hadoop jar word.jar WordCount input output

我知道作业执行并且 word.jar 将有一个包含 MyJar.jar 文件的 lib 目录。现在,当作业运行调用这个 jar 文件的方法时,这个 jar 文件 MyJar 文件将存储在 HDFS 的哪个位置?

4

1 回答 1

5

bin/hadoop 脚本实际上将您的 work.jar 文件解压缩到本地文件系统上的 tmp 文件夹中。

Job 客户端处理 HDFS 中作业文件夹的创建,您的原始 jar、所有 lib jar 和其他作业文件(例如 job.xml、分布式缓存文件等)都上传到该文件夹​​。

当您的作业在集群节点上运行时,这些文件将被复制回该节点的本地文件系统上的 tmp 作业目录。出于效率原因,文件只复制一次,而不是针对在该节点上运行的每个映射任务。

于 2012-07-15T13:38:52.977 回答