首页 > 代码库 > hadoop开发环境搭建(1)
hadoop开发环境搭建(1)
作为初学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.linuxidc.com/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>
(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
hadoop开发环境搭建(1)