感谢支持
我们一直在努力

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 admin hadoop


好了,现在可以开始安装 🙂


1.安装ssh


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


~$ sudo apt-get install openssh-server


生成私钥和公钥:


hadoop@www.linuxidc.com:~$ ssh-keygen -t rsa -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/ lucid partner”


~$ 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 -R hadoop:hadoop /usr/local/hadoop


4.设定hadoop-env.sh


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


export JAVA_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@www.linuxidc.com:/usr/local/hadoop$ source


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


hadoop@www.linuxidc.com:/usr/local/hadoop$ hadoop namenode -format


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

7.启动Hadoop:


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


hadoop@www.linuxidc.com:/usr/local/hadoop$ cd bin


hadoop@www.linuxidc.com:/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上运行,是不是很期待?


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


~$ ./bin/hadoop fs –put conf input


~$ ./bin/hadoop jar hadoop-*-examples.jar grep input output ‘dfs[a-z.]+’


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

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


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


~$ ./bin/hadoop fs -ls


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

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


~$ ./bin/hadoop fs -cat output/*


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

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


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

OK。

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu上搭建Hadoop环境(附实例)
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏