hadoop jar xxxx.jar的流程

转载 2013年12月02日 17:23:22


转自:http://hi.baidu.com/dt_zhangwei/item/a58239fb46f3f110d7ff8cbf

搞清楚 hadoop jar xxxx.jar 执行的流程: jar文件是如何分发的


JobClient(不一定是hadoop集群的节点)利用bin/hadoop脚本运行jar包,以hadoop-0.20.2-examples.jar为例子:
hadoop jar hadoop-0.20.2-examples.jar [class name]的实质是:
1.利用hadoop这个脚本启动一个jvm进程;
2.jvm进程去运行org.apache.hadoop.util.RunJar这个java类;
3.org.apache.hadoop.util.RunJar解压hadoop-0.20.2-examples.jar到hadoop.tmp.dir/hadoop-unjar*/目录下;
4.org.apache.hadoop.util.RunJar动态的加载并运行Main-Class或指定的Class;
5.Main-Class或指定的Class中设定Job的各项属性
6.提交job到JobTracker上并监视运行情况。

注意:以上都是在jobClient上执行的。

运行jar文件的时候,jar会被解压到hadoop.tmp.dir/hadoop-unjar*/目录下(如:/home/hadoop/hadoop-fs/dfs/temp/hadoop- unjar693919842639653083, 注意:这个目录是JobClient的目录,不是JobTracker的目录)。解压后的文件为:
drwxr-xr-x 2 hadoop hadoop 4096 Jul 30 15:40 META-INF
drwxr-xr-x 3 hadoop hadoop 4096 Jul 30 15:40 org
有图有真相:


提交job的实质是:
生成${job-id}/job.xml文件到hdfs://${mapred.system.dir}/(比如hdfs://bcn152:9990/home/hadoop/hadoop-fs/dfs/temp/mapred/system/job_201007301137_0012/job.xml),job的描述包括jar文件的路径map|reduce类路径等等.
上传${job-id}/job.jar文件到hdfs://${mapred.system.dir}/(比如hdfs://bcn152:9990/home/hadoop/hadoop-fs/dfs/temp/mapred/system/job_201007301137_0012/job.jar)
有图有真相:


生成job之后,通过static JobClient.runJob()就会向jobTracker提交job:
JobClient jc = new JobClient(job);
RunningJob rj = jc.submitJob(job);
之后JobTracker就会调度此job,

提交job之后,使用下面的代码获取job的进度:
    try {
      if (!jc.monitorAndPrintJob(job, rj)) {
        throw new IOException("Job failed!");
      }
    } catch (InterruptedException ie) {
      Thread.currentThread().interrupt();
    }

(转)hadoop jar xxxx.jar的流程

来源:http://hi.baidu.com/dtzw/blog/item/64a6f3f2dff0511eb17ec5b0.html 搞清楚 hadoop jar xxxx.jar 执行的流程: ...
  • laiahu
  • laiahu
  • 2011年12月27日 10:23
  • 3169

hadoop jar xxxx.jar 执行的流程

搞清楚 hadoop jar xxxx.jar 执行的流程: jar文件是如何分发的 JobClient(不一定是hadoop集群的节点)利用bin/hadoop脚本运行jar包,以hadoop...
  • longshenlmj
  • longshenlmj
  • 2013年03月25日 13:42
  • 1403

hadoop 执行 jar文件流程

hadoop 执行 jar文件流程
  • pzqingchong
  • pzqingchong
  • 2017年08月12日 21:08
  • 208

java -cp & java jar的区别

java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;” 格式: java -cp .;myCla...
  • sunny05296
  • sunny05296
  • 2017年10月17日 23:53
  • 1647

Hadoop中Job提交过程

虽然写过多次的MR程序,但是未能很好的理解整个Hadoop中的Job的任务提交过程,查看了下源码,整理了下其job的提交过程,大致为:客户端向资源管理yarn申请资源,yarn分配好相应的资源,进行作...
  • u013124704
  • u013124704
  • 2016年08月22日 19:18
  • 1125

hadoop以jar形式运行代码 并运行时动态指定参数

前言: 在执行 wordcount代码中,文件参数在代码中写死,如果希望动态指定 文件参数的话,可以将工程打成jar方式,在hadoop环境下执行,步骤如下:   1 wordcount类...
  • genghaihua
  • genghaihua
  • 2015年01月13日 11:41
  • 3105

Hadoop使用jar运行实例

一、.在eclipse中使用编写程序,然后打成jar包, 程序代码: package tju.chc; import java.io.File; import java.io.IOException...
  • u014470581
  • u014470581
  • 2016年05月23日 11:14
  • 8492

Hadoop工作流程

这里我就按我自己对Hadoop工作流程的理解大概写一下,如果哪位大牛看到,有错误或漏洞请指正。这是一篇综述类的博客,我会就某些局部细节写后续博客。        Hadoop集群中分主节点master...
  • sun_168
  • sun_168
  • 2012年07月13日 08:37
  • 4137

解决Hadoop jar *.jar 主类名 -libjars *.jar *.jar arg1 arg2 ... 中-libjars的方法

problem: (1)hadoop 依赖多个jar包,在-libjars后面一个个写太麻烦。 (2)程序无法解析出-libjars. 解决方案 (1)如果程序依赖多个第三方jar包,可以用pytho...
  • fffpppccc
  • fffpppccc
  • 2015年07月02日 08:57
  • 2494

Hadoop学习1_在使用命令行运行WordCount时,遇到的jar命令说明

1. jar cf WordCount.jar WordCount*.class 使用情况: 编译WordCount.java文件,编译java文件的命令为javac,截图如下: 编译WordC...
  • wang_zhenwei
  • wang_zhenwei
  • 2015年08月11日 20:46
  • 2491
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop jar xxxx.jar的流程
举报原因:
原因补充:

(最多只允许输入30个字)