码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop开发环境搭建

时间:2015-03-04 22:49:30      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:hadoop   分布式文件系统   mapreduce   hdfs   ssh   

很早就听说hadoop,但项目中一直没怎么接触,今天终于下定决心,花了一天的时间,搭起了基本的开发环境,总结如下。

一.软件准备

jdk、hadoop软件包、eclipse软件包(linux版)

二.安装java

详见http://blog.csdn.net/tonytfjing/article/details/42167599

三.安装hadoop(单机伪分布式)

3.1创建hadoop用户

为hadoop创建一个专门的用户,具体如下:

groupadd hadoopGroup             //创建hadoop用户组
useradd -g hadoopGroup hadoop    //新增用户hadoop并将其加入hadoopGroup群组
passwd hadoop                    //建立hadoop用户的新密码,密码也是hadoop

3.2安装hadoop

用ftp工具将hadoop安装包上传到linux系统中,解压

tar -zxvf hadoop-1.2.1.tar.gz

3.3配置ssh

Hadoop需要通过SSH(安全外壳协议,可以保护共享访问的安全性)来启动Slave列表中各台主机的守护进程。但是由于SSH需要用户密码登陆,所以为了在系统运行时,节点之间免密码登录和访问,就需要把SSH配置免密码方式。具体如下:

ssh-keygen -t rsa        //生成密钥对,ras加密
一直按enter,就会按照默认的选项将生成的密钥对保存到.ssh/id_rsa

cd .ssh/            
cp id_rsa.pub authorized_keys    //进入.ssh,把id_rsa.pub文件追加到授权(authorized_keys)里面
ssh localhost                    //测试无密码登录本机

3.4配置hadoop环境

切换到hadoop的安装路径找到conf/hadoop-env.sh文件,vi编辑,在文件最后添加如下语句:

export JAVA_HOME=/usr/java/jdk1.7.0_71
同时将hadoop安装目录的bin目录配置到系统path变量中,不然如果无法使用hadoop命令(当然也可以每次都到hadoop安装文件夹下的bin里面去执行./hadoop)
vi /etc/profile
export HADOOP_HOME=/hadoop1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
Hadoop-1.2.1的配置文件主要有三个,从名字上很容易辨认和理解:conf/core-site.xml(全局配置文件)、conf/hdfs-site.xml(HDFS配置文件)和conf/mapred-site.xml(MapReduce的配置文件)。下面是我的配置,name都是固定的,也很容易理解。value注意根据自己的路径来配

conf/core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop1.2.1/tmp</value>        
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.5.227:9000</value>    <!-- 最好写成这样,因为后面编程时会用到这个地址 -->
</property>
</configuration>

conf/mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.5.227:9001</value>
</property>
 
<property>
<name>mapred.cluster.local.dir</name>
<value>/hadoop1.2.1/mapred/local</value>
</property>
 
<property>
<name>mapred.jobtracker.system.dir</name>
<value>/hadoop1.2.1/mapred/system</value>
</property>
 
</configuration>
hdfs-site.xml  
 <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop1.2.1/dfs/name</value>
</property>
 
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop1.2.1/dfs/data</value>
</property>
 
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

3.5格式化HDFS文件系统

修改完上述文件之后,进入hadoop安装目录
cd /hadoop1.2.1
在首次安装和使用Hadoop之前,需要格式化分布式文件系统HDFS,所以执行如下命令:
bin/hadoop namenode -format

3.6启动hadoop环境

启动守护进程
bin/start-all.sh

成功后,至少将在本机上启动5个新进程:NameNode、DataNode、JobTracke、TaskTracker、SecondaryNameNode

查看hadoop启动情况

jps

8165 Jps
27621 NameNode
2982 oc4j.jar
28001 JobTracker
2454 Bootstrap
28142 TaskTracker
27764 DataNode
27907 SecondaryNameNode

如果现实类似于上述的信息,则表示Hadoop已经正常启动了,恭喜你!既然Hadoop安装好了,那就该用用了。

四、Hadoop下eclipse开发环境准备

4.1安装eclipse,并编译插件

cp eclipse-SDK-3.4-linux-gtk.tar.gz /opt                    //将eclipse-SDK-3.4-linux-gtk.tar.gz安装包复制到/opt目录
cd /opt                                                     //切换到/opt目录
tar -zxvf eclipse-java-luna-SR1-linux-gtk.tar.gz            //解压eclipse-SDK-3.4-linux-gtk.tar.gz数据包
eclipse插件编译及使用详见 http://f.dataguru.cn/thread-288619-1-1.html

4.2配置Map/Reduce Locations

重启eclipse,配置hadoop installation directory,如图

技术分享

如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里配置Hadoop installation directory。进入Map/Reduce视角,如下图,

技术分享

新建location

技术分享

配置如下,

技术分享

这里面的Host、Port分别是我前面在core-site.xml、mapred-site.xml中配置的地址及端口。配置完后退出。一层层打开DFS Locations,如果能显示文件夹(1)说明配置正确,如果显示"拒绝连接",请检查配置。

4.3第一个Map/Reduce Project

新建一个Map/Reduce Project项目,将example里的WordCount.java复制到新建的项目下面。先编写个数据输入文件,如下:

技术分享

通过hadoop的命令在HDFS上创建/tmp/workcount目录,命令如下:
hadoop fs -mkdir /tmp/wordcount
通过copyFromLocal命令把新建的word.txt复制到HDFS上,命令如下:
hadoop fs -copyFromLocal /word.txt  /tmp/wordcount/word.txt

这个时候我们回到eclipse里面,在Map/Reduce Locations上reconnect看看,发现多出来了文件,如下所示,

技术分享

4.4运行第一个Map/Reduce Project

在WordCount.java,右键-->Run As-->Run Configurations ,配置如下,

技术分享

两个配置参数很容易理解,就是输入文件和输出文件。点击Run,运行程序,等运行结束后,查看运行结果,同样在Map/Reduce Locations上reconnect看看(也可以用命令hadoop fs -ls /tmp/wordcount/out)会发现又多出一个文件夹,下面含有两个文件。

使用命令查看part-r-00000文件,hadoop fs -cat /tmp/wordcount/out/part-r-00000可以查看运行结果。

技术分享

好了,现在搭建好了基本的开发环境了,小伙伴们可以去折腾了!

hadoop开发环境搭建

标签:hadoop   分布式文件系统   mapreduce   hdfs   ssh   

原文地址:http://blog.csdn.net/tonytfjing/article/details/44064733

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!