Ubuntu10.04 配置 Hadoop 1.0.3

1、下载Hadoop 1.0.3 url:http://www.fayea.com/apache-mirror/hadoop/core/stable/hadoop-1.0.3.tar.gz 

     $ wget http://www.fayea.com/apache-mirror/hadoop/core/stable/hadoop-1.0.3.tar.gz 

2、Ubuntu下运行Hadoop,需要先装好Java和ssh

    Java:$ sudo apt-get install openjdk-6-jre

    ssh:  $ sudo apt-get install ssh

    还要装一个 rsync: $ sudo apt-get install rsync。 在单机时候没有用到,这个是在cluster上多机同步的时候用的。

    之后,检测安装,要求sshd服务一直启动。$ ps aux后如下:

    

3、安装Hadoop。

    我直接在~/Downloads 下面将Hadoop解压: tar -xvf hadoop-1.0.3.tar.gz

    解压后,如下所示,bin下面是可执行程序,conf下面为配置文件所在。

    

4、测试前准备:修改conf/hadoop-env.sh,将其中的JAVA_HOME配置好:

     

     要说明的是我安装java的位置在usr/bin,java、javac、javadoc等程序都在这个目录下,开始的时候,设成usr/bin是不行的,会报错,提示说找不到目录,然后显示的寻找的完整路径是/usr/bin/bin/java,所以,我觉得是它自带了补全路劲,所以如上图,改成了JAVA_HOME=/usr。

5、测试运行。

     三种模式:单机运行,伪分布式运行,分布式运行。我是在虚拟机里面做的,只试验了前两个,打算等下多开几个虚拟机,见个VPN,试下第三种模式。

     以下的测试,使用的是Hadoop官方文档上的例子。

     A、单机模式。比较简单,命令如下:

     $ mkdir input                                                                                         #创建输入文件夹

     $ cp conf/*.xml input                                                                              #将conf下的xml文件拷贝到input中
     $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'       #样例程序
     $ cat output/*                                                                                        #显示运行结果

 

     在output下面写出两个文件,执行成功。part-00000中内容为dfsadmin

      

      B、伪分布式模式。

      首先修改配置文件,配置主机。

      

conf/core-site.xml:
<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>


conf/hdfs-site.xml:

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>


conf/mapred-site.xml:

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

       然后安装密钥。

       按照官方文档中的提示,先通过$ ssh localhost验证,试验通过免密钥的方式运行

       

       没看懂是不是可以==||,又执行了下面的操作,手动生成密钥:

       

       还有一部,格式化一个新的分布式文件系统:

       $ bin/hadoop namenode -format
       现在就可以开始执行Hadoop的样例了。 

       开启Hadoop守护进程:$ bin/start-all.sh  

       从下面两个地址,查看NameNode和JobTracker的情况: 

       * NameNode - http://localhost:50070/

       * JobTracker - http://localhost:50030/

 

             

      将输入文件拷贝到分布式文件系统中:$ bin/hadoop fs -put conf input

      运行示例程序:$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

      将输出文件拷贝从分布式文件系统拷贝到本地,并检查文件:

      $ bin/hadoop fs -get output output
      $ cat output/* 

      或者直接在分布式文件系统中查看文件:$ bin/hadoop fs -cat output/* 

      关闭Hadoop守护进程:$ bin/hadoop fs -cat output/* 

     

      The end XD~ 

 

 

posted @ 2012-07-07 22:25  郝玉琨  阅读(888)  评论(0编辑  收藏  举报