在三台ubuntu上搭建hadoop开发环境;
在windows下利用Eclipse访问ubuntu下的hadoop环境,进行开发;
2、软硬件要求:
软件: hadoop-0.20.2 ,jdk-1.6 ,操作系统 ubuntu10.10 , Eclipse3.7 ;
硬件:3台装有ubuntu系统的机器(我使用的是在一台windows xp下利用 VMware workstation 安装了三台ubuntu虚拟机)
3台ubuntu虚拟器使用相同的用户名和密码 如我的用户名都是matt,
3、ubuntu上搭建hadoop环境
(这一步我直接省略,在网上有很多参考),搭建好后的配置文件如下:
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/matt/HadoopInstall/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://tiger:9000</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>tiger:9001</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4、在windows上安装eclipse3.7,
首先先进行windows系统参数设置,进入C:\WINDOWS\system32\drivers\etc 将hosts中加入主机名与对应Ip的关系
tiger 192.168.200.195
lion 192.168.200.196
wolf 192.168.200.197
(这三台分别是我的三台ubuntu虚拟机的主机名和对应的IP,可以参考我之前写的日志VMware虚拟机与主机共享上网的设置)
在官网下载解压eclipse3.7,然后将hadoop插件直接拷到eclipse的plugins里就可以了(hadoop0.20.2自带的hadoop插件只能支持
eclipse3.3.2以下版本,因此这个插件是我在google中搜索的);重启eclipse 通过点击Window -> Open Perspective -> Other 选择、Map/Reduce,图标是个蓝色的象。就可以看到mapreduce视图了;接下来进行设置mapreduce开发环境,在
eclipse下端,控制台旁边会多一个Tab,叫“Map/Reduce Locations”,在下面空白的地方点右键,选择“New Hadoop location...”,
弹出配置框如图所示:
其中Location name可以随便起,Map/Reduce Master要与你的mapered-site.xml对应,DFS与core-site.xml对应,User name是
unbuntu中搭建hadoop环境的用户名;接下来设置advanced parameter,里面主要注意的是 hadoop.tmp.dir(要与配置文件中的临时
目录一致) 和 hadoop.job.ugi(hadoop环境的用户名和组名 在这里就是 matt ,matt)这个变量名可能在刚开始时不存在,没有关系
先配置好其他的,确认保存。这时打开project Explorer就可以看到DFS Location了如图:
如果在第一次没有hadoop.job.ugi变量的配置时在/hadoop/mapred/system下你是没有查看权限的 也就是查看不
到/matt/HadoopInstall/tmp这个目录,也不能进行删除文件操作,这时再打开advanced parameter,将值配置为上面提到的对应值就
好了(matt,matt);到这里整个配置部分就ok了;
5、运行第一个程序wordcount
在 project Explorer中右键->new ->mapreduce project 然后点击 configure Hadoop install directory 浏览到 hadoop0.20.2文件夹
下,这样project就会自动把hadoop下的jar包导入到工程,然后把hadoop自带的wordcount源码复制到project src目录下(注意包名要
一致)然后右键 Run As -> Run configuration ,弹出配置窗口单击左边的javap Application 选择WordCount程序,然后在右侧的
Arguments Program arguments 中配置运行参数(hdfs://tiger:9000/user/matt/input hdfs://tiger:9000/user/matt/output 分别对应程
序输入目录和输出目录)点击apply,然后再在wordcount上右键 ->run on hadoop 程序就能运行并在eclipse中打印日志信息了。