手把手教hadoop2.5.1+eclipse开发调试环境搭建(1),hadoop2.5.1eclipse


作为初学Hadoop的新手,搭建Hadoop开发环境花了我很大功夫。倒不是hadoop搭建复杂,由于hadoop本身是一个分布式、多jvm进程的运行环境,我们想达到能用eclipse进行代码跟踪调试目的,还真不是一般的费劲。

一边在网上向各位前辈学习,一边自己动手尝试,花了我整整一天的时间终于完成了,为了使自己好不容易完成的成就,后续不被轻易忘记,也为了帮助其他hadoop小白同类脱贫致富,花了一晚上总结了此篇博文,以兹鼓励大笑


一、准备篇

言归正传,首先是准备篇。这里我们需要准备不少东东:

1、操作系统

如果你是使用linux环境,请直接跳过。

如果你是使用window环境,那么你就需要准备一台虚拟机,用VMware安装一台RedHat Linux Server 6.4-x86_64系统,这个我就不再啰嗦了,大家勤快点网上爬爬,到处都是。

为了省事,我设定直接使用root账号进行工作。因为省了很多权限配上的麻烦,这一点大家可以随意。

然后,你要关闭防火墙,设置selinux=disabled,设置静态ip,hostname,这些网上搜搜都有。

最后,测试一下,在window中ping 虚拟机的ip看看是否通畅,一切OK就万事OK了。否则,你就看看你的window上是否开了防火墙或者360卫士之类的阻挡软件,他们会把vmware的nat服务给禁用,关闭他们吧,我从来不用360卫士之类的东东,老是偷偷摸摸的往他们自个儿家里搬东西,看着就让人生气。


2、安装Java环境

Jdk我们选择的是JDK7,由于oracle官网上下载太麻烦,而且还不能断点续传,特别使人纠结,所以我直接使用的是Cloudera的仓库中的rpm包oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm。直接用YUM安装此rpm包(yum install -y oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm),安装完成后,用java -version检查一下Java的当前版本是不是我们刚才装的,如果不是,请参考:http://blog.csdn.net/gxy3509394/article/details/8166288;或多JDK配置http://www.linuxboy.net/Linux/2012-09/71358.htm

最后配置一下JAVA_HOME,上面的参考博文中都有,我就不骗字数了。


3、安装让人又恨又爱的Hadoop

怎么说啦,这Hadoop吧是个好东西,就是一堆零碎看得使人头痛,好歹有了一个Cloudera,那就是个救世主。这里我们用不到他,嗯,说实话Cloudera Manager的安装也够使人头痛的了。

我们安装使用Hadoop的伪分布式模式,也就是说NN\SNN\DN\YARN全部运行在一台机器上。这个安装很方便,我们选择的是Hadoop最新版2.5.1,从官网上下载hadoop-2.5.1.tar.gz,解压到hadoop-2.5.1目录。

配置hadoop其实很简单,但俺这笨蛋折腾了好久,看了好多hadoop和yarn的配置参数,配了很多,结果老是启动失败,最后才发现是我想得太多了大哭

(1)、配置hadoop-2.5.1/etc/hadoop/hadoop-env.sh

export JAVA_HOME=你刚才安装的JDK目录

(2)、cp hadoop-2.5.1/etc/hadoop/mapred-site.xml.template hadoop-2.5.1/etc/hadoop/mapred-site.xml,并在mapred-site.xml添加以下内容:

<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
</property>

(3)、cp hadoop-2.5.1/etc/hadoop/core-site.xml.template hadoop-2.5.1/etc/hadoop/core-site.xml,并修改core-site.xml如下:

<property>
    <name>fs.default.name</name>
    <value>hdfs://你虚拟机的IP:8020</value>
</property>

(4)、cp hadoop-2.5.1/etc/hadoop/yarn-site.xml.template hadoop-2.5.1/etc/hadoop/yarn-site.xml,并修改yarn-site.xml如下:

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

这里原来的配置有问题,hadoop2.5.1开始对yarn.nodemanager.aux-services的值做了校验,不能包含‘-‘,只能包含'_',很抱歉,没跑通的朋友赶紧改改。

(5)、cp hadoop-2.5.1/etc/hadoop/hdfs-site.xml.template hadoop-2.5.1/etc/hadoop/hdfs-site.xml,并修改hdfs-site.xml如下:

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

默认情况下,HDFS数据块副本数是3,而在集群规模小于3的集群中该参数会导致出现错误,这可通过将 dfs.replication 调整为1解决。而且,我们的伪分布模式也不需要那么多副本。


在启动Hadoop前,我们要做个免登操作。为什么要这么做啦?才开始我也不懂,但经过在启动时无数次输入账号密码后,终于悟了偷笑

(1)、打开命令行终端(Applications->System Tools->Terminal),输入以下命令:
ssh-keygen -t rsa
(2)、将公钥文件 id_rsa.pub 中的内容复制到相同目录下的 authorized_keys 文件中:
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys


好啦,现在一切搞定,启动Hadoop!

格式化 HDFS,命令如下:

cd hadoop-2.5.1

bin/hadoop namenode -format

sbin/start-all.sh

最后用jps查看朋友们是否都起来了,如果看到以下进程就代表一起OK了:

[root@hadoop1 hadoop-2.5.1]#jps

18790 NodeManager
6168 DataNode
6056 NameNode
6473 ResourceManager
6324 SecondaryNameNode

相关内容