Ubuntu上搭建Hadoop环境(附实例)

来源:互联网 发布:变频器编程教程软件 编辑:程序博客网 时间:2024/06/10 05:41

Ubuntu上搭建Hadoop环境(附实例)

 

 

   两天的学习后,我们对Hadoop有所了解了,特别是昨天对MapReduce的部分源码进行了分析,知道了MapReduce是怎么运作的,是不是手痒了,很想自己安装Hadoop吧(其实是我自己手痒了...)?那我们今天就先不分析源码,我们就来安装Hadoop(单机集群模式)。以下所有操作均在Ubuntu 11.04下完成。

   安装前要做一件事——添加一个名为hadoop到系统用户,专门用来做Hadoop测试。

          ~$ sudo addgroup hadoop

           ~$ sudo adduser --ingroup hadoop hadoop

   现在只是添加了一个用户hadoop,它并不具备管理员权限,因此我们需要将用户hadoop添加到管理员组:

           ~$ sudo usermod -aG adminhadoop

   好了,现在可以开始安装 :-)

 

 

 

1.安装ssh

   由于Hadoop用ssh通信,作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录(除非你的手真的非常痒,每次都喜欢输入密码,一两台机器还可以,要是几十上百台呢?没密码担心安全问题?自己去看openssh吧,记得要弄懂里面的加密算法哦。)

           ~$ sudo apt-get install openssh-server

   生成私钥和公钥:

           hadoop@scgm-ProBook:~$ ssh-keygen -trsa -P ""

 

Ubuntu上搭建Hadoop环境(附实例)


   因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):

           ~$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

   现在可以登入ssh确认以后登录时不用输入密码:

           ~$ ssh localhost

 

Ubuntu上搭建Hadoop环境(附实例)


     登出:

            ~$ exit

   第二次登录:

           ~$ ssh localhost

 Ubuntu上搭建Hadoop环境(附实例)

   登出:

           ~$ exit

   这样以后登录就不用输入密码了:-)

 

 

 

2.安装Java

   hadoop是用Java写的。

   

          ~$ sudo apt-get purge java-gci-compat

           ~$ sudo add-apt-repository "deb http://archive.canonical.com/ lucidpartner"

           ~$ sudo apt-get update

           ~$ sudo apt-get install sun-java6-jdk sun-java6-plugin

           ~$sudo update-java-alternatives -s java-6-sun

 

 

 

3.下载并安装Hadoop

   到这里下载Hadoop,解压并放到你希望的目录中。我是放到/usr/local/hadoop

           ~$ sudo mv/home/scgm/下载/hadoop-0.20.2/usr/local/hadoop

   要确保所有的操作都是在用户hadoop下完成的:

           ~$ sudo chown -Rhadoop:hadoop /usr/local/hadoop

 

 

 

4.设定hadoop-env.sh

   进入hadoop目录,打开conf目录下到hadoop-env.sh,添加以下信息:

 

          exportJAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26 (视你机器的java安装路径而定)

           export HADOOP_HOME=/usr/local/hadoop

           export PATH=$PATH:/usr/local/hadoop/bin

 

 

5.设定*-site.xml

   这里需要设定3个文件:core-site.xml,hdfs-site.xml,mapred-site.xml

   core-site.xml:

 Ubuntu上搭建Hadoop环境(附实例)


   hdfs-site.xml

   Ubuntu上搭建Hadoop环境(附实例)

 

   mapred-site.xml:

   Ubuntu上搭建Hadoop环境(附实例)

 

 

6.格式化HDFS

   通过以上步骤,我们已经设定好Hadoop单机测试到环境,接着就是启动Hadoop到相关服务,格式化namenode,secondarynamenode,tasktracker:


          hadoop@scgm-ProBook:/usr/local/hadoop$ source  

           /usr/local/hadoop/conf/hadoop-env.sh

           hadoop@scgm-ProBook:/usr/local/hadoop$ hadoop namenode-format

 

Ubuntu上搭建Hadoop环境(附实例)

 


 

7.启动Hadoop:

   接着执行start-all.sh来启动所有服务,包括namenode,datanode:

 

           hadoop@scgm-ProBook:/usr/local/hadoop$ cd bin

           hadoop@scgm-ProBook:/usr/local/hadoop/bin$ start-all.sh

 

 Ubuntu上搭建Hadoop环境(附实例)

   


8.检查运行状态

   所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常:

   

    http://localhost:50030/    - Hadoop管理介面

   

    http://localhost:50060/    - Hadoop Task Tracker状态

 

    http://localhost:50070/     - Hadoop DFS状态

 

 

   Hadoop管理界面:

   Ubuntu上搭建Hadoop环境(附实例)



   Hadoop TaskTracker状态:

 Ubuntu上搭建Hadoop环境(附实例)

   Hadoop DFS状态:

 Ubuntu上搭建Hadoop环境(附实例)


结语

   今天我们试着在Ubuntu上搭建Hadoop,而且成功了!鼓掌!接下来我们可以写些简单的应用,看看能不能在Hadoop上运行,是不是很期待?不过今天太累了,这事得明天才能做。

   本文参考修改自http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab1,特此感谢。

 

 

   实在是手痒,还是试着运行了一个application——grep,一个单词计数器。切换到Hadoop安装目录,执行下面到指令:

       $ ./bin/hadoop fs –put confinput

             $ ./bin/hadoop jarhadoop-*-examples.jar grep input output 'dfs[a-z.]+'

 

   Ubuntu上搭建Hadoop环境(附实例)


   图中可以看出,以上两条命令到输出说明了mapreduce过程

   前两条命令还在HDFS中生成两个目录,“input””output”。可以通过以下命令查看:

 

              $ ./bin/hadoop fs -ls

 Ubuntu上搭建Hadoop环境(附实例)


   查看HDFS中已经输出的文件。它以键-值对的形式列出以“ha*”开头的单词出现到次数。

           $ ./bin/hadoop fs -catoutput/*

 Ubuntu上搭建Hadoop环境(附实例)


   现在可以访问JobTracker站点查看完成的作业日志:

   Ubuntu上搭建Hadoop环境(附实例)
0 0
原创粉丝点击