需在环境变量中添加HADOOP_HOME路径
使用win下的bin和lib替换原来的。(windows下需要winutils.exe)
下载地址http://download.csdn.net/detail/qdqht2009/9510510
//这种获取fs的方法可以指定访问hdfs的客户端身份
fs = FileSystem.get(new URI("hdfs://yun12-01:9000/"), conf, "hadoop")
jvm变量设置
mr 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) 该配资参数位于mapred-site.xml中
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
----如果确实需要在eclipse中提交到yarn执行,必须做好以下两个设置
a/将mr工程打成jar包(wc.jar),放在工程目录下
b/在工程的main方法中,加入一个配置参数 conf.set("mapreduce.job.jar","wc.jar");
c/将xml配置文件拷到工程目录下(mapred-site.xml,yarn-site.xml等)
3、在windows的eclipse中运行本地模式,步骤为:
----a、在windows中找一个地方放一份hadoop的安装包,并且将其bin目录配到环境变量中
----b、根据windows平台的版本(32?64?win7?win8?),替换掉hadoop安装包中的本地库(bin,lib)
----c、mr程序的工程中不要有参数mapreduce.framework.name的设置
4、在windows的eclipse中运行main方法来提交job到集群执行,比较麻烦
----a、类似于方式3中所描述的对本地库兼容性进行改造
----b、修改YarnRunner这个类