一、准备插件
1、自己编译
1.1 安装Ant
- 官网下载Ant,apache-ant-1.9.6-bin.zip
- 配置环境变量,新建ANT_HOME,值是E:apache-ant-1.9.6;PATH后面追加";%ANT_HOME%in"
- 测试,ant -version
1.2 下载hadoop2.6.0
http://hadoop.apache.org/releases.html#News,选择2.6.0的binary
1.3 下载hadoop2x-eclipse-plugin源代码
地址:https://github.com/winghc/hadoop2x-eclipse-plugin,选择右侧的“Download ZIP”,下载。
1.4 编译
- 解压hadoop2x-eclipse-plugin-master.zip,如在E盘下,则进入到:E:hadoop2x-eclipse-plugin-mastersrccontribeclipse-plugin
- 执行ant,ant jar -Dversion=2.6.0 -Dhadoop.version=2.6.0 -Declipse.home=E:Program Files (x86)eclipse -Dhadoop.home=E:hadoop-2.6.0,前面那个是eclipse的安装目录,后面的是hadoop2.6.0的根目录
- 生成位置,E:hadoop2x-eclipse-plugin-masteruildcontribeclipse-plugin目录下
注:由于我本机的有个commons-httpclient包下载不下来,也没找到原因,也就没用自己打包的方式。 一 一+
2、直接下载,这是我下载的一份,确实可用的:
网盘地址:链接: http://pan.baidu.com/s/1dDwemop 密码: idve
二、Eclipse配置
1、把插件放到eclipse的plugins目录下,启动eclipse,可以在左侧看到DFS Location
2、打开Window -> Preferences,可以看到Hadoop Map/Reduce选项,选中,设置hadoop的根目录,如下图:
3、配置MapReduce
3.1 点击Window -> Show View -> MapReduce Tools,打开Map/ReduceLocation视图
3.2 找到Map/ReduceLocation选项卡,点击右侧的蓝色小象图标,打开配置窗口,输入任意Location name,配置Map/Reduce Master和DFS Master,如下图:
注意:9001和9000端口要设置开放;MR Master和DFS Master配置必须和mapred-site.xml和core-site.xml等配置文件一致
4、测试连接是否成功
4.1 登录到hadoop服务器,启动hadoop服务
4.2 查看左侧DFS Location,如果看到上传的文件,说明连接成功,如下图:
注意:在左侧上传文件到hdfs时,会提示没写的权限,(如果hadoop环境的用户是root,不存在此问题)解决方法有三种:
a. 打开hdfs-site.xml,增加如下代码,但不适合生产环境:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
b. 修改文件的读写权限,如:bin/hadoop dfs -chmod 777 /in/input3
c. windows创建一个和hadoop用户一样的用户,且要用这个用户打开eclipse。(这个本人未亲身测试,有兴趣的可以自己试试)
4.3 eclipse上传文件,选择左侧的菜单选项“Upload file to DFS”,效果如下:
附上几个配置文件的信息:
1、hadoop环境
master:192.168.12.232
slave01:192.168.12.233
slave02:192.168.12.234
2、配置文件:
hosts文件
[hadoop@master hadoop]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.12.232 master 192.168.12.233 slave01 192.168.12.234 slave02
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.datanode.ipc.address</name> <value>0.0.0.0:50020</value> </property> <property> <name>dfs.datanode.http.address</name> <value>0.0.0.0:50075</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.6.0/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.6.0/dfs/data</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> </configuration>
slaves
#localhost
slave01
slave02