搭建hadoop-dist-2.0.0-cdh4.2.0开发测试环境

来源:互联网 发布:kindle书单 知乎 编辑:程序博客网 时间:2024/06/05 03:38

项目中用到的版本是hadoop-dist-2.0.0-cdh4.2.0,因此在虚拟机上搭了一个2.0的环境。

hadoop的开发测试环境一般来说分3种:

单机版:不配置任何配置文件,仅用来开发和调试

伪分布式:namenode、datanode、job、tasktrack等服务都在同一个节点上,配置相关的xml文件,用来开发和调试

完全分布式:master、slave等分布在不同的节点上,一般是生产环境


hadoop-dist-2.0.0-cdh4.2.0目录结构:




G:\hadoop-2.0.0-cdh4.2.0\bin目录:该目录存放的是可执行脚本

G:\hadoop-2.0.0-cdh4.2.0\etc\hadoop:该目录存放xml相关的配置文件。在hadoop1.0版本中,xml的配置文件是存放在conf目录下面的。

hadoop2.0与1.0相比,缺少了mapred-site.xml,多了一个mapred-site.xml.template文件,yarn-site.xml文件,以前配置在mapred-site.xml中的内容现在配置在yarn中了。

yarn可以看成是mapreduce框架的升级。

G:\hadoop-2.0.0-cdh4.2.0\sbin:该目录存放server的可执行脚本,start-all.sh、yarn-daemon.sh。

现在通过执行sbin\start-all.sh可以启动所有服务,相当于执行以下脚本:

hadoop@ubuntu:/usr/local/hadoop/sbin$    ./hadoop-daemon.sh start namenode
hadoop@ubuntu:/usr/local/hadoop/sbin$    ./hadoop-daemon.sh start datanode

hadoop@ubuntu:/usr/local/hadoop/sbin$    ./yarn-daemon.sh start resourcemanager  //这个就相当于原来的jobtracker

hadoop@ubuntu:/usr/local/hadoop/sbin$    ./yarn-daemon.sh start nodemanager    //这个相当于原来的tasktracker

通过sbin\stop-all.sh停止服务。

G:\hadoop-2.0.0-cdh4.2.0\share\hadoop\mapreduce:该目录存在官方自带的一些例子。


开始搭建hadoop-2.0.0-cdh4.2.0单机版

1、安装jdk,配置jdk环境变量

2、创建hadoop用户和组,安装启动ssh服务,设置hadoop用户权限。这里创建一个hadoop用户是为了管理方便,后续的hadoop操作都在该用户下进行。

以上步骤参考hadoop1.0搭建

3、下载 hadoop-dist-2.0.0-cdh4.2.0.tar.gz   包。上传到/usr/local 目录下(目录可以任意,看个人喜好),我用的是SecureFX.exe 工具上传的

以下操作需要切换到hadoop用户进行(为了避免不需要的麻烦)

3.1、解压  hadoop-dist-2.0.0-cdh4.2.0.tar.gz


hadoop@ubuntu:/usr/local$  tar -zxvf jdk-7u25-linux-x64.tar.gz

将解压后的包名修改为hadoop(为了配置方便我修改了,也可以不修改)

hadoop@ubuntu:/usr/local$ mv hadoop-2.0.0-cdh4.2.0/ hadoop


3.2、配置hadoop环境变量

涉及到几个xml配置文件

hadoop-env.sh:配置hadoop依赖的环境,如:jkd


core-site-xml:core的配置项,例如hdfs和mapreduce常用的i/o设置等

hdfs-site.xml:hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等

yarn-site.xml:mapreduce配置项

master 记录运行辅助namenode的机器列表

slave 记录运行datanode和tasktracker的机器列表

step1:配置hadoop-env.sh,添加jdk路径

hadoop@ubuntu:/usr/local/etc/hadoop$ sudo gedit hadoop-env.sh   //sudo表示以root权限访问 gedit表示用图形化的形式打开文件




step2:配置core-site.xml

hadoop@ubuntu:/usr/local/hadoop/etc/hadoop$ sudo gedit core-site.xml



step3:配置hdfs-site.xml

hadoop@ubuntu:/usr/local/hadoop/etc/hadoop$ sudo gedit hdfs-site.xml



step4:配置yarn-site.xml

hadoop@ubuntu:/usr/local/hadoop/etc/hadoop$ sudo gedit yarn-site.xml



step5:配置slaves

hadoop@ubuntu:/usr/local/hadoop/etc/hadoop$ sudo gedit slaves




3.3、启动服务

step1:格式化hdfs

hadoop@ubuntu:/usr/local/hadoop$ cd bin

./hadoop namenode -format


step2:启动服务,进入sbin目录

hadoop@ubuntu:/usr/local/hadoop/sbin$ ./start-all


step3:用jps命令查看服务是否启动

hadoop@ubuntu:/usr/local/hadoop/sbin$ jps



打开浏览器,可以查看hdfs、任务进度的页面

//查看hadoop管理页面
http://localhost:8088/cluster 

(默认端口是8088,但是我在yarn-site.xml中进行了重新配置,

yarn-site.xml中的yarn.resourcemanager.webapp.address 因此端口需要变一下)


http://localhost:18084



//查看dfs
http://localhost:50070


3.4、运行hadoop自带的例子,统计文件中单词的个数

step1:在hadoop目录下创建一个目录,用来存放文件

hadoop@ubuntu:/usr/local/hadoop$  mkdir input


step2: 在input目录下创建2个文件 test1.txt、test2.txt

hadoop@ubuntu:/usr/local/hadoop/input$ echo "hello world" > test1.txt

hadoop@ubuntu:/usr/local/hadoop/input$ echo "hello hadoop" > test2.txt

//创建test1.txt,并将hello world内容写入文件


test1.txt内容如下:

hello world

test2.txt内容如下:

hello hadoop


step3:在hdfs上创建input目录(因为是分布是模式,因此文件是需要拷贝到hdfs上面才能进行计算的)

 //在hdfs上创建input目录

hadoop@ubuntu:/usr/local/hadoop/bin$ hadoop fs -mkdir input  

//将input目录下的所有文件拷贝到hdfs的input目录

hadoop@ubuntu:/usr/local/hadoop$ hadoop fs -put input/* input  


//执行hadoop自带的统计单词的例子

hadoop@ubuntu:/usr/local/hadoop$ hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.2.0.jar wordcount input output  

//查看结果

hadoop@ubuntu:/usr/local/hadoop/bin$ hadoop fs -cat output


local/hadoop/bin$ hadoop fs -rmr input  //删除hdfs上的input目录






原创粉丝点击