首页 > 代码库 > 3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式

3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式

途径1: 

技术分享

技术分享

 

途径2:

技术分享

技术分享

技术分享

 

 

途径3:

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

成功!

 

 


由此,可以好好比较下,途径1和途径2 和途径3 的区别。

 技术分享

 

 

现在,来玩玩weekend110的joba提交的逻辑之源码跟踪

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

原来如此,weekend110的job提交的逻辑源码,停在这了

 

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 技术分享

技术分享

技术分享

 

技术分享技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

hello world

hello tom

helllo jim

jim is a bad boy

hello jack

hello baby

baby is my nvshen

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

hello world

hello tom

helllo jim

jim is a bad boy

hello jack

hello baby

baby is my nvshen

 

不再一个一个放了。直接放完吧,map

 

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

a       1

baby    2

bad     1

boy     1

helllo  1

hello   4

is      2

jack    1

jim     2

my      1

nvshen  1

tom     1

world

 

技术分享

 

以上是weekend110的job提交的逻辑之源代码跟踪

 

 

 

接下来是yarn框架的技术机制,

技术分享

Resourcemanager和nodemanager进程一直在,

Yarnchild进程一会在,一会不在,

技术分享

技术分享

技术分享

以上是weekend110的job提交的逻辑及YARN框架的技术机制

MR程序的几种提交运行模式

 

本地模型运行:

1/在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行

      ----输入输出数据可以放在本地路径下(c:/wc/srcdata/)

      ----输入输出数据也可以放在hdfs中(hdfs://weekend110:9000/wc/srcdata)

      

2/在linux的eclipse里面直接运行main方法,但是不要添加yarn相关的配置,也会提交给localjobrunner执行

      ----输入输出数据可以放在本地路径下(/home/hadoop/wc/srcdata/)

      ----输入输出数据也可以放在hdfs中(hdfs://weekend110:9000/wc/srcdata) 

       

集群模式运行:

1/将工程打成jar包,上传到服务器,然后用hadoop命令提交  hadoop jar wc.jar cn.itcast.hadoop.mr.wordcount.WCRunner

2/在linux的eclipse中直接运行main方法,也可以提交到集群中去运行,但是,必须采取以下措施:

      ----在工程src目录下加入 mapred-site.xml  和  yarn-site.xml

      ----将工程打成jar包(wc.jar),同时在main方法中添加一个conf的配置参数 conf.set("mapreduce.job.jar","wc.jar");          

 

3/在windows的eclipse中直接运行main方法,也可以提交给集群中运行,但是因为平台不兼容,需要做很多的设置修改

                   ----要在windows中存放一份hadoop的安装包(解压好的)

                   ----要将其中的lib和bin目录替换成根据你的windows版本重新编译出的文件

                   ----再要配置系统环境变量 HADOOP_HOME  和 PATH

                   ----修改YarnRunner这个类的源码

                        

 技术分享

玄机是在Runjar,

Runjar客户端,它持有的是跟rm通信的那个客户端,它就会往那走

Runjar客户端,它持有的是跟本地模式通信的那个客户端,它就会提交到本地去了

那么,它在什么情况之下,持有rm客户端,什么情况下,持有本地客户端呢?

看源码最清楚

技术分享

配置对象,没配任何信息,默认就会创建一个跟本地模式通信的Runjar,

 

MR程序的几种提交运行模式

技术分享

技术分享

技术分享

演示:

2/在linux的eclipse里面直接运行main方法,但是不要添加yarn相关的配置,也会提交给localjobrunner执行

      ----输入输出数据可以放在本地路径下(/home/hadoop/wc/srcdata/)

      ----输入输出数据也可以放在hdfs中(hdfs://weekend110:9000/wc/srcdata)  

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

在这里,依然还是没解决,windows是用的是jpk,这里用的是utf-8,告诫我们,平常要习惯用utf-8

技术分享

技术分享

技术分享

 

 

1 Common的jar包和 2 hdfs的jar包,已经加过了,

还需,3 mapreduce的jar包 4 mapreduce下lib下的jar 和5 yarn的jar包和6 yarn下lib的jar包。

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

hadoop没启,这只是在linux里的jvm运行。

 

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

这说明,跑的mr的确是在本地,

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

 

情况四:

 

 技术分享

技术分享

 技术分享

 

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

     

  总结,eclipse开发,若在windows下,需要插件,一般牛人会ant编译出一个插件,挂到csdn上,卖积分。也许,这位牛人弄出来的插件在他电脑上是可以,但到别人电脑上又不可以了。所以,一般能在linux里的eclipse下开发最好不过了。这样可避免插件浪费很多时间。

 

3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式