hadoop - Hadoop 上的外部/jar 文件存储在哪里?

标签 hadoop mapreduce hdfs

假设我写了一个 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/

相关文章:

java - Mapreduce 作业吐出 java.io.IOException : com. mysql.jdbc.Driver

hadoop - xpath udf(Hive)返回所有数组元素,我想查看单独行而不是单个行中的每个数组元素

installation - 如何在本地主机(mac)上安装Mahout(Hadoop)

hadoop - Flume 架构 : Events passing to Channel

java - 不使用 JobConf 运行 Hadoop 作业

java - 在Eclipse中运行mapreduce程序时出错

c++ - 在 ARM 架构上重新编译 Hadoop 源代码后缺少库

hadoop - 避免无密码访问 HDFS 文件

hadoop - 启动工作时 oozie 的问题

hadoop - Hive 上的自定义 Map Reduce 程序,规则是什么?输入和输出如何?