让我说我写一个WordCount示例,然后在eclipse项目中包含一个外部jar文件,如MyJar.jar。现在,如果我将整个WordCount项目导出为word.jar文件,然后键入
$> hadoop jar word.jar WordCount input output
我知道该作业已执行,word.jar将包含一个包含MyJar.jar文件的lib目录。现在,HDFS将在作业运行时存储此jar文件MyJar文件,从而调用此jar文件的方法?
答案 0 :(得分:5)
bin / hadoop脚本实际上将您的work.jar文件解压缩到本地文件系统上的tmp文件夹中。
Job客户端处理在HDFS中创建作业文件夹,其中将原始jar,所有lib jar和其他作业文件(例如job.xml,分布式缓存文件等)上载到。
当您的作业在群集节点上运行时,这些文件将被复制回该节点的本地文件系统上的tmp作业目录。出于效率原因,文件只被复制一次,而不是复制到在该节点上运行的每个map任务。