zoukankan      html  css  js  c++  java
  • hadoop jar xxxx.jar 执行的流程

    搞清楚 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.jarhadoop.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
    有图有真相:
    (转帖)hadoop <wbr>jar <wbr>xxxx.jar的流程


    提交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)
    有图有真相:
    (转帖)hadoop <wbr>jar <wbr>xxxx.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();
    }
  • 相关阅读:
    monkeyrunner小结
    ADB用法
    logcat命令详解【一】
    logcat命令详解【二】
    五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
    哈佛图书馆的二十条训言
    C#中千分位问题
    虚拟目录继承根目录web.config
    批量删除sql数据库木马
    决IE和Firefox下flash挡住div层的问题
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205727.html
Copyright © 2011-2022 走看看