转自: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-INFdrwxr-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包,解压直接用。
hadoop-2.7.3.tar.gz 下载 目前相对比较稳定的版本 hadoop tar 包下载hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载
org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V 解决方案:下载本资源解压将hadoop.dll和winutils.exe文件复制到hadoop2.7.3的bin目录下即可解决。
hadoop2.6.0 hadoop.dll包括winutils.exe
hadoop2.7.3 Winutils.exe hadoop.dll
hadoop的hadoop.dll和winutils.exe下载
hadoop-3.2.4.tar.gz
hadoop支持LZO压缩配置 将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/ core-site.xml增加配置支持LZO压缩 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> ...
我的报错: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-2.7.4.tar.gz-Hadoop客户端压缩包
hadoop-2.6.0.tar.gz.mds,hadoop的安装包,版本为2.6.0,适应操作系统为Linux。
hadoop-3.2.3.tar.gz 安装包
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-2.7.1.tar.gz.zip 提示:先解压再使用,最外层是zip文件
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-2.5.2.tar.gz
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不...
hadoop-3.3.0.tar.gz