一个MapReuce作业的从开始到结束--第6章Hadoop以Jar包的方式执行MapReduce任务

    从bin/hadoop脚本可知,Hadoop运行Jar包执行MapReduce任务的类是org.apache.hadoop.util.RunJar,其源代码在core/org/apache/hadoop/util/RunJar.java



执行一个Jar包,其本质就是,把Jar解压缩到一个临时目录,以反射的方式获取main函数,然后执行。



[1]. 执行RunJar类的main函数。

[2]. 获取manifest:Manifest manifest = jarFile.getManifest()

[3]. 获取要执行的类:mainClassName

[4]. 创建workDir

[5]. jar文件解压缩到wordDir:unJar(file, workDir)

[6]. 以反射的方式获取main函数:

Method main =mainClass.getMethod("main", new Class[] {

Array.newInstance(String.class,0).getClass()

});

[7].执行main函数:main.invoke(null,new Object[] { newArgs })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值