MapReduce学习之二

来源:互联网 发布:中国 美国法律 知乎 编辑:程序博客网 时间:2024/04/30 06:58

上一次是在windows上面搭建了hadoop环境,然后并在上面跑了mapreduce程序(wordcount),这一次在linux环境中来搭建hadoop环境,并安装eclipse便于今后开发。

1:安装虚拟机,装linux系统

         这里我安装的虚拟机是VMware WorkStationLinux系统是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_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysssh 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_26export HADOOP_HOME=/opt/hadoopexport 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包中,会有hadoopeclipse上运行的插件,但是我用它调了2天没成功。而IBM也有为用eclipse上运行hadoop的插件,下载地址如下:http://www.alphaworks.ibm.com/tech/mapreducetools/download

下载后解压,考到eclipseplugin文件夹下。就可以了。

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的结果

 

至此已经结束,走了不少弯路,总算是弄出来了。