上一次是在windows上面搭建了hadoop环境,然后并在上面跑了mapreduce程序(wordcount),这一次在linux环境中来搭建hadoop环境,并安装eclipse便于今后开发。
1:安装虚拟机,装linux系统
这里我安装的虚拟机是VMware WorkStation。Linux系统是ubuntu10.04。正常安装即可。此处需要注意的问题就是别忘了安装VMware Tool。如果不安装的话,最后linux系统在windows中不能全屏显示,而这会对后面用eclipse开发mapreduce造成不必要的影响。具体影响在后面eclipse安装好后详细说明。
2:安装JDK
在安装好linux系统后,开始安装JDK。版本要求要1.6以上,而且最好是sun官网上下的,以免造成不必要的麻烦。
在sun官网上可以下载到.rpm和.bin两种JDK,我不太知道分别是干嘛的,我下的是.bin的,版本是jdk1.6.0_26,我将其放在了/usr/lib/jvm/java(文件夹自己建)中,然后执行它就行了,不过直接不能执行,要加权限:
sudo chmod u+x /usr/lib/jvm/java/jdk1.6.0_26.bin
然后就可以执行了,执行如下命令:
sudo /usr/lib/jvm/java/jdk1.6.0_12.bin
然后就是各种回车和选yes等,好了之后要修改环境变量,用如下命令:
sudo gedit /etc/environment
会打开environment,我们在里面修改环境变量如下:
PATH="......:/usr/lib/jvm/java/jdk1.6.0_26/bin"
CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_26/lib
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_26
然后重启一下linux系统就可以了,不过ubuntu中有的好像有有默认的jdk————openjdk,所以,还要执行下面的命令,
但是我没有试过这个,不过似乎不少人遇到此问题,我没有遇到。此后,在输入命令java –version,看到java版本是jdk1.6.0_26就可以了
3:安装hadoop。
JDK安装好之后,我们可以来安装hadoop,网上好多安装教程,但是大多是hadoop-0.18.*版本的,我安装的是hadoop-0.20.2版本。安装方法如下:
先装ssh:
apt-get install ssh
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost
在最后的sshlocalhost命令后若没错就OK了。
再装hadoop:
cd ~
wget http://apache.ntu.edu.tw/hadoop/core/hadoop-0.20.0/hadoop-0.20.0.tar.gz
tar zxvf hadoop-0.20.0.tar.gz
sudo mv hadoop-0.20.0 /opt/
sudo chown -R zhutiangang /opt/hadoop-0.20.0
sudo ln -sf /opt/hadoop-0.20.0 /opt/hadoop
安装完毕,然后就是配置一些文件:
打开hadoop文件夹下conf文件夹下hadoop-env.sh,先去掉export HADOOPSIZE……前面的#,然后做如下添加修改:
export JAVA_HOME= /usr/lib/jvm/java/jdk1.6.0_26
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:/opt/hadoop/bin
然后打开core-site.xml文件,添加如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
再打开mapred-site.xml,添加如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.child.java.opt</name>
<value>-Xmx2048m</value>
</property>
</configuration>
这样,hadoop就安装完毕了。通过如下方法启动hadoop:
cd /opt/hadoop
source /opt/hadoop/conf/hadoop-env.sh
hadoop namenode -format
start-all.sh
如果修改了配置文件,则需要重新执行上面的命令。
4:安装eclipse
我安装的是3.3.2版本,据别的版本可能会有问题,我没尝试过。我是将eclipse也安装在了/opt文件夹下,安装方法略去,关键是安装插件,在上一步骤hadoop包中,会有hadoop在eclipse上运行的插件,但是我用它调了2天没成功。而IBM也有为用eclipse上运行hadoop的插件,下载地址如下:http://www.alphaworks.ibm.com/tech/mapreducetools/download
下载后解压,考到eclipse的plugin文件夹下。就可以了。
5:运行mapreduce示例(wordcount):
新建project,选mapreduce那种的,然后网上找个wordcount代码放进去:
然后,用Open Run Dialog跑,
此处的Main Class中,要选择WordCount这个类。
然后填写参数:
现在解释之前所说的那个问题,就是为什么一定要安装VMware Tool,因为,如果不安装VMware Tool,虚拟机中linux系统所占屏幕只是咱们屋里屏幕的一部分,无法完全填充,而这,会造成eclipse参数输入框是灰色,连光标都看不到!!!!这个问题我也不知道什么原因,但是好多网友都存在这个问题,害我重装了一次ubuntu,两次hadoop和两次JDK和四次eclipse和无数次plugin。。。。。。。。
Program argument里面是填写wordcount程序的两个参数,分别是输入文件和输出文件目录,这里的路径是相对workspace的,不是hdfs的。
然后是VM arguments的填写,这里要填写较大些,不然运行时会出现outofmemery的异常。
然后Run就可以了。
然后在你指定的输入文件目录中会多一个output文件夹,里面会有个part-00000文件夹,里面是wordcount的结果
至此已经结束,走了不少弯路,总算是弄出来了。