`

hadoop jar xxxx.jar的流程

 
阅读更多

转自:http://hi.baidu.com/dtzw/blog/item/64a6f3f2dff0511eb17ec5b0.html

搞清楚 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
有图有真相:


提交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包.rar

    这个"hadop jar包.rar"文件很显然是包含了运行Hadoop相关程序所需的jar包集合,用户解压后可以直接使用,省去了自行编译和配置的步骤。 Hadoop的核心组件主要包括两个:HDFS(Hadoop Distributed File System)和...

    hadoop-3.1.3.tar.gz

    <name>hadoop.tmp.dir <value>/app/hadoop/tmp ``` HDFS配置hdfs-site.xml则涉及NameNode和DataNode的相关参数,如副本数量和数据存储路径: ```xml <name>dfs.replication <value>3 <name>dfs....

    hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价硬件上处理大量数据,是大数据处理领域的重要工具。2.7.3是Hadoop的一个稳定版本,提供了可靠的分布式存储系统HDFS(Hadoop Distributed File ...

    hadoop-2.7.1.tar.gz.zip

    Hadoop是一个开源的分布式计算框架,由Apache基金会开发,它主要设计用于处理和存储大量数据。这个名为“hadoop-2.7.1.tar.gz.zip”的文件包含了Hadoop的2.7.1版本,这是一个非常重要的里程碑,因为它包含了对Hadoop...

    hadoop-3.3.1.tar.gz

    - **提交作业**:使用`hadoop jar`命令提交作业到YARN执行。 - **监控作业**:通过Web UI或命令行工具查看作业状态和日志。 6. **集群管理** - **集群扩展**:添加更多节点以扩大Hadoop集群规模。 - **监控和...

    hadoop-2.7.4.tar.gz

    `hadoop jar`命令,用于运行MapReduce程序。 7. **Hadoop安全性**:Hadoop 2.7.4支持Kerberos认证,可以实现集群的安全访问和数据保护,防止未授权的访问。 8. **Hadoop生态环境**:Hadoop并不只是单一的工具,它...

    hadoop-lzo-0.4.20.jar

    hadoop2 lzo 文件 ,编译好的64位 hadoop-lzo-0.4.20.jar 文件 ,在mac 系统下编译的,用法:解压后把hadoop-lzo-0.4.20.jar 放到你的hadoop 安装路径下的lib 下,把里面lib/Mac_OS_X-x86_64-64 下的所有文件 拷到 ...

    hadoop-2.5.2.tar.gz

    MapReduce作业通过hadoop jar命令提交到集群,Hadoop会自动处理数据分布、任务调度和容错。 此外,Hadoop 2.5.2还引入了安全特性,如Kerberos认证,以增强集群的安全性。同时,这个版本优化了数据本地性和网络通信...

    hadoop的winutils.exe及hadoop.dll文件

    我的报错:Could not locate Hadoop executable: E:\big_data\hadoop-3.3.0\bin\winutils.ex hadoop的winutils.exe及hadoop.dll文件,可以用于hadoop3.3. 下载好直接将两个文件复制到我们hadoop的bin目录下就行了

    hadoop-3.2.2.tar.gz

    8. **启动与使用**:启动Hadoop服务,如`start-dfs.sh`和`start-yarn.sh`,然后可以使用Hadoop的命令行工具(如hadoop fs、hadoop jar等)或Hadoop API进行数据处理。 9. **优化与监控**:根据实际需求和资源状况对...

    hadoop-2.6.0.tar.gz.mds

    hadoop-2.6.0.tar.gz.mds,hadoop的安装包,版本为2.6.0,适应操作系统为Linux。

    hadoop-3.1.3.tar.gz编译后的源码包

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,主要用于处理和存储海量数据。这个hadoop-3.1.3.tar.gz文件是一个包含了Hadoop 3.1.3版本的源码压缩包,对于理解Hadoop的工作原理、进行二次开发或者定制化...

    hadoop的hadoop.dll和winutils.exe

    hadoop hadoop的hadoop.dll和winutils.exe 解决方法, 把winutils.exe加入你的hadoop-x.x.x/bin下 Could not locate executable null\bin\winutils.exe in the Hadoop binaries

    hadoop-3.1.1.3.1.4.0-315.tar.gz

    ambari-2.7.5 编译过程中四个大包下载很慢,所以需要提前下载,包含:hbase-2.0.2.3.1.4.0-315-bin.tar.gz ,hadoop-3.1.1.3.1.4.0-315.tar.gz , grafana-6.4.2.linux-amd64.tar.gz ,phoenix-5.0.0.3.1.4.0-315....

    hadoop-3.3.6.tar.gz - hadoop 3.3.6 安装包

    文件名: hadoop-3.3.6.tar.gz 这是 Hadoop 3.3.6 版本的安装包(即二进制版,不是源码),文件格式为 tar.gz,解压后直接使用. Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层...

    elasticsearch 与hadoop 相关的jar

    包含 elasticsearch-hadoop-6.6.1.jar elasticsearch-hadoop-hive-6.6.1.jar elasticsearch-spark-20_2.11-6.6.1.jar elasticsearch-storm-6.6.1.jar 等

    hadoop-2.7.1.tar.gz-百度网盘下载链接

    hadoop-2.7.1.tar.gz做大数据处理,分布式计算的,安装在linux服务器上。

    hadoop-2.10.0jar.zip

    包含hadoop平台Java开发的所有所需jar包,例如activation-1.1.jar apacheds-i18n-2.0.0-M15.jar apacheds-kerberos-codec-2.0.0-M15.jar api-asn1-api-1.0.0-M20.jar api-util-1.0.0-M20.jar asm-3.2.jar avro-1.7.7...

    hadoop2.7.3 hadoop.dll

    org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V 解决方案:下载本资源解压将hadoop.dll和winutils.exe文件复制到hadoop2.7.3的bin目录下即可解决。

Global site tag (gtag.js) - Google Analytics