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();
}
升级Hadoop-Common.jar主要是为了获得更好的性能、更稳定的系统以及更强大的功能。下面是关于升级Hadoop-Common.jar的一些具体内容: 1. 性能改进:新版本的Hadoop-Common.jar通常包含了针对不同的资源管理、任务调度、数据处理等方面的性能优化。升级到新版本可以提高集群的整体性能,加快任务的执行速度,提高处理能力。 2. Bug修复:每个版本都会修复之前版本中的一些问题和漏洞。升级到新版本可以避免遇到已知的问题,提高系统的可靠性和稳定性。 3. 新功能支持:新版本Hadoop-Common.jar通常会引入一些新的功能和特性,如新的数据处理算法、更高效的存储和压缩技术等。升级可以使得集群具备更强大的功能,更好地满足业务需求。 4. 安全升级:随着Hadoop的发展,安全性变得越来越重要。新版本的Hadoop-Common.jar通常会引入更多的安全特性和安全修复,使得集群的数据和操作更加安全可靠。 5. 社区支持:升级Hadoop-Common.jar也是为了能够获得更好的社区支持。社区中的开发者会在新版本中进行积极的开发和维护,及时解决用户反馈的问题,提供技术支持和指导。 综上所述,升级Hadoop-Common.jar能够获得更好的性能、更稳定的系统、更强大的功能和更好的社区支持。然而,在升级之前,还需进行充分的测试和准备工作,确保升级的顺利进行,并避免对现有集群和业务造成不必要的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值