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

Hadoop上的外部/jar文件存储在哪里?,hadoop,mapreduce,hdfs,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脚本实际

假设我编写了一个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作业目录。出于效率考虑,这些文件只复制一次,而不是针对在该节点上运行的每个映射任务。

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

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


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

这很有意义。但是,您如何解释这一点:客户机将运行作业所需的资源(包括作业JAR文件、配置文件和计算的输入拆分)复制到以作业ID命名的目录中的jobtracker文件系统中。作业JAR的复制系数很高(由mapred.submit.replication属性控制,该属性默认为10)。这一段没有太多意义。首先,因为它说客户端将evrything复制到jobtracker的fs,然后job jar是高度复制的。job Tracker fs指的是HDFS,这很有意义。但是,您如何解释这一点:客户端复制运行job所需的资源,包括job jar文件,然后e配置文件和计算出的输入拆分到jobtracker的文件系统,该文件系统位于以作业ID命名的目录中。作业JAR以高复制系数复制(由mapred.submit.replication属性控制,该属性默认为10).这一段没有太多意义。首先,因为它说客户端将evrything复制到jobtracker的fs,然后是高度复制的JobJAR。job Tracker fs指的是HDFS