假设我写了一个 WordCount 示例,然后在 eclipse 项目中包含一个外部 jar 文件,例如 MyJar.jar。现在,如果我将整个 WordCount 项目导出为 word.jar 文件,然后键入
$> hadoop jar word.jar WordCount input output
我知道作业会执行并且 word.jar 将有一个包含 MyJar.jar 文件的 lib 目录。现在,当作业运行时调用这个 jar 文件的方法时,这个 jar 文件 MyJar 文件将存储在 HDFS 上的什么地方?
最佳答案
bin/hadoop 脚本实际上将您的 work.jar 文件解压缩到本地文件系统上的 tmp 文件夹中。
作业客户端处理在 HDFS 中创建作业文件夹,您的原始 jar、所有 lib jar 和其他作业文件(例如 job.xml、分布式缓存文件等)都上传到该文件夹。
当您的作业在集群节点上运行时,这些文件将被复制回该节点本地文件系统上的 tmp 作业目录。出于效率原因,文件只复制一次,而不是针对在该节点上运行的每个映射任务。
关于hadoop - Hadoop 上的外部/jar 文件存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11489316/