hadoop伪分布式的搭建与测试

hadoop支持三种方式来搭建,分别是

    1.单击模式,即Local (Standalone) Mode

    2.伪分布式,即Pseudo-Distributed Mode

    3.集群方式,即Fully-Distributed Mode

单击模式就不说了,没啥用。这次教程我们来看看如何一步步搭建伪分布式的hadoop,所谓伪分布式,也是运行在一台机器上的,hadoop也只需安装一个,知识启动各个服务的时候是不同的java进程罢了。

1.获取64位hadoop安装包并上传到机器上:

[root@node113 ~/installs]#ls
hadoop-2.6.5_x64.tar.gz

2.解压到/usr/local/hadoop目录下:

[root@node113 ~/installs]#mkdir -p /usr/local/hadoop
[root@node113 ~/installs]#tar -zxvf hadoop-2.6.5_x64.tar.gz  -C /usr/local/hadoop

3.cd  /usr/local/hadoop

4.查看一下目录结构,心里有个谱:

image.png

5.解压了hadoop安装包之后,现在开始配置hadoop的配置文件:

[root@node113 /usr/local/hadoop]#cd hadoop-2.6.5/etc/hadoop/

6.要配置哪些文件呢?我用红框都给标出来了,即core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml.template、yarn-site.xml这五个文件:

image.png

7.vi hadoop-env.sh:

把export JAVA_HOME=${JAVA_HOME}修改为export JAVA_HOME=/usr/local/java/jdk1.7.0_80

8.vi core-site.xml,在configuration标签中加入如下内容:

<property>
   <name>fs.defaultFS</name>
   <value>hdfs://node113:9000</value>
</property>
<property>
   <name>hadoop.tmp.dir</name>
   <value>/usr/local/hadoop/data</value>
</property>

其中fs.defaultFS里面的node113是当前机器的hostname,hadoop.tmp.dir用于配置hadoop的工作产生数据的存放目录.

9.创建上一步指定的hadoop的工作目录:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/etc/hadoop]#mkdir -p /usr/local/hadoop/data

10.vi hdfs-site.xml,指定hdfs的datanode保存副本的数量,因为现在就一台机器所以设置为1,集群的时候一般设置为3,就是一个block有3个备份的意思,在configuration中加入如下内容:

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

11.先修改mapred-env.sh里面的JAVA_HOME,再重命名mapred-site.xml.template文件为mapred-site.xml

[root@node113 /usr/local/hadoop/hadoop-2.6.5/etc/hadoop]#cp mapred-site.xml.template mapred-site.xml

12.vi  mapred-site.xml,在configuration标签中加入如下内容,用于配置让MapReduce运行在yarn上:

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

13. 先修改yarn-env.sh里面的JAVA_HOME,再vi yarn-site.xml,yarn.resourcemanager.hostname用于配置yarn的rm所在的机器,这里的使用机器的hostname,即node113:

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

14.添加hadoop的环境变量,vi ~./bashrc:

HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.5
PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME PATH

15.使配置生效:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/etc/hadoop]#source ~/.bashrc

16.配置完成,接下来就是测试了。

在hadoop2.6.5的伪分布式环境搭建完成之后,再来进行测试是否搭建成功的工作。

1.先格式化hdfs的工作目录,这里的工作目录就是我们搭建环境时指定的/usr/local/hadoop/data目录,执行命令"hdfs namenode -format"即可,如下:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/bin]#hdfs namenode -format

看到如下红框中的内容说明格式化工作目录成功:

image.png

2.cd  /usr/local/hadoop/data目录下查看,可以看到hadoop已经帮助我自动创建了子目录:

[root@node113 /usr/local/hadoop/data]#ls
dfs

3.cd   /usr/local/hadoop/hadoop-2.6.5/sbin,查看有哪些文件:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/sbin]#ls
distribute-exclude.sh  hdfs-config.cmd  kms.sh                   slaves.sh      start-balancer.sh  
start-secure-dns.sh  stop-all.cmd      stop-dfs.cmd        stop-yarn.cmd   yarn-daemons.sh
hadoop-daemon.sh       hdfs-config.sh   mr-jobhistory-daemon.sh  start-all.cmd  start-dfs.cmd      
start-yarn.cmd       stop-all.sh       stop-dfs.sh         stop-yarn.sh
hadoop-daemons.sh      httpfs.sh        refresh-namenodes.sh     start-all.sh   start-dfs.sh       
start-yarn.sh        stop-balancer.sh  stop-secure-dns.sh  yarn-daemon.sh
[root@node113 /usr/local/hadoop/hadoop-2.6.5/sbin]#

4.启动hdfs,执行 ./start-dfs.sh:

image.png

可以看到启动了hdfs的namenode  datanode   secondarynamenode,但是每次启动之前都要输入密码,这是因为hadoop使用ssh localhost登录到localhost的时候需要密码,配置免密码登录请参见“linux配置免密码登录”这篇文章。

5.启动yarn,执行  ./start-yarn.sh,结果如下:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/sbin]#./start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/hadoop-2.6.5/logs/yarn-root-resourcemanager-node113.out
root@localhost's password: 
localhost: starting nodemanager, logging to /usr/local/hadoop/hadoop-2.6.5/logs/yarn-root-nodemanager-node113.out

可以看到启动了yarn的resourcemanager(rm)和nodemanager(nm).

6.使用java的jps命令查看是否都启动成功:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/sbin]#jps
25137 ResourceManager
24853 DataNode
25414 NodeManager
25516 Jps
24742 NameNode
24994 SecondaryNameNode

8.通过浏览器查看hdfs的管理界面是否可以访问:http://node113:50070(注意关闭防火墙,并在本地windows的hosts文件配置node113的映射“192.168.28.113 node113”):

image.png

ok,说明hdfs正常。

9.通过浏览器查看yarn的管理界面是否可以访问:http://node113:8088,如下:

image.png

说明yarn也是正常的。

10.现在我们做下面一个功能:把linux本地目录/root/xing.txt上传到hdfs的工作目录上去,怎么完成呢?如下,hadoop fs -put命令用于把本地文件上传到hdfs上,hdfs://node113:9000/表示hdfs工作目录的根路径,hdfs的根路径在我们搭建环境是指定的目录/usr/local/hadoop/data下面:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/bin]#hadoop fs -put /root/xing.txt hdfs://node113:9000/xing.txt

xing.txt的内容如下:

image.png

11.在hdfs的管理界面上查看是否已经把本地文件xing.txt上传上去了:

image.png

12.再实现一个这样的功能,从hdfs上下载一个文件到linux本地,可以使用命令"hadoop fs -get hdfs://node113:9000/xing.txt /root/haha.txt"来完成,如下图:

image.png

13.hdfs是没有问题了,现在来测试一下MapReduce吧,怎么测试呢?hadoop安装完成之后,hadoop已经给我们提供了一个可以直接拿来运行的MapReduce程序,放在/usr/local/hadoop/hadoop-2.6.5/share/hadoop/mapreduce目录下,就是下面的hadoop-mapreduce-examples-2.6.5.jar,它完成的功能是统计文件中的字符个数:

[root@node113 /usr/local/hadoop/hadoop-2.6.5/share/hadoop/mapreduce]#ls
hadoop-mapreduce-client-app-2.6.5.jar     hadoop-mapreduce-client-hs-2.6.5.jar          
hadoop-mapreduce-client-jobclient-2.6.5-tests.jar  lib
hadoop-mapreduce-client-common-2.6.5.jar  hadoop-mapreduce-client-hs-plugins-2.6.5.jar  
hadoop-mapreduce-client-shuffle-2.6.5.jar          lib-examples
hadoop-mapreduce-client-core-2.6.5.jar    hadoop-mapreduce-client-jobclient-2.6.5.jar   
hadoop-mapreduce-examples-2.6.5.jar                sources

14.运行命令“hadoop jar hadoop-mapreduce-examples-2.6.5.jar  wordcount  hdfs://node113:9000/xing.txt  hdfs://node113:9000/xing_statistics.out”,上面的命令表示运行hadoop-mapreduce-examples-2.6.5.jar这个java程序,主类是wordcount,输入(数据源)是hdfs上的xing.txt,程序运行完之后,把MapReduce统计的结果放到hdfs上的xing_statistics.out这个目录中(这个文件不需要你自己创建)去,运行截图:

 

15.我们到hdfs的管理界面“http://node113:50070”去查看是否有这个文件:

image.png

16.点击上边红框里面的“xing_statistics.out”超链接之后,可以看到两个文件:

image.png

其中_SUCCESS表示MapReduce执行成功,part-r-0000就是结果文件,下载下来查看其内容:

image.png

我们回头看xing.txt里面的内容,比较一下是不是这样的结果呢,当然是了,由此说明MapReduce也是没有问题的

17.在yarn的管理界面http://node113:8088也可以看到刚才执行MapReduce程序wordcount的信息:

image.png

18.hadoop的伪分布式的hdfs相关的东西和MapReduce相关的东西都测试完成

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值