mapreduce job的几种运行模式
1、在eclipse中开发好mr程序(windows或linux下都可以),然后打成jar包(wc.jar),上传到服务器,执行命令
hadoop jar wc.jar cn.itheima.hadoop.MainClassRunner
这种方式会将这个job提交到yarn集群上去运行
2、在Linux的eclipse中直接启动Runner类的main方法
这种方式可以使job运行在本地,也可以运行在yarn集群
----究竟运行在本地还是在集群,取决于一个配置参数
mapreduce.framework.name == yarn (local)
----如果确实需要在eclipse中提交到yarn执行,必须做好以下两个设置
- a/将mr工程打成jar包(wc.jar),放在工程目录下
- b/在工程的main方法中,加入一个配置参数conf.set(“mapreduce.job.jar”,“wc.jar”);
3、在windows的eclipse中运行本地模式(一般为开发模式),步骤为:
-
a、在Windows中配置Hadoop环境变量
(1)、HADOOP_HOME : E:\Hadoop\hadoop-2.7.1
(2)、path : 添加 %HADOOP_HOME%\bin;
(3)、测试:打开命令行cmd ,输入命令 hadoop version -
b、添加文件
(1)、将hadoop-common-2.2.0-bin-master\bin文件夹下的winutils.exe放到hadoop的bin目录下
(3)、把hadoop-common-2.2.0-bin-master\bin文件夹下d的hadoop.dll文件拷贝到C:\Windows\System32下,重启电脑 -
c、在Eclipse中指明登陆hadoop的用户,
System.setProperty(“HADOOP_USER_NAME”, “hadoop上的用户名”);
或者
右键->Run Configurations->Arguments->VM arguments 加入:-DHADOOP_USER_NAME=root----a、在windows中找一个地方放一份hadoop的安装包,并配置Hadoop环境变量
----b、根据windows平台的版本(32?64?win7?win8?),替换掉hadoop安装包中的本地库(bin,lib)
----c、mr程序的工程中不要有参数mapreduce.framework.name的设置
4、在windows的eclipse中运行main方法来提交job到集群执行,比较麻烦
a、类似于方式3中所描述的对本地库兼容性进行改造
- b、修改YarnRunner这个类