博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式
阅读量:5811 次
发布时间:2019-06-18

本文共 2136 字,大约阅读时间需要 7 分钟。

途径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下开发最好不过了。这样可避免插件浪费很多时间。

 

本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5895657.html,如需转载请自行联系原作者

你可能感兴趣的文章
struct字节分配问题
查看>>
Error string types not allowed at android:configChanges in manifest file
查看>>
mysql服务器主从服务器设置
查看>>
文件管理、命令别名和glob
查看>>
趣谈家用计算机维护
查看>>
Spring security
查看>>
ubuntu 14 /etc/sudoers权限修改引起sudo不能使用
查看>>
花样的年华
查看>>
我的友情链接
查看>>
centos *** clent 连接
查看>>
《QTP自动化测试进阶》(14)
查看>>
JMeter入门教程2:录制1
查看>>
RAIDD 互联网应用
查看>>
第九章 缓存技术
查看>>
有4家企业获得阿里云创投资金 一夜间成为土豪的感脚有木有~~
查看>>
ORACLE日期时间的格式化参数大全
查看>>
我的博文哪去了?
查看>>
老男孩28期视频第一次测试
查看>>
cron表达式详解
查看>>
restful+springmvc+mybatis+ webservice 分布式架构
查看>>