Hadoop2.x 版本伪分布式环境搭建及测试

              Hadoop2.x 伪分布式环境搭建及测试

                                               作者:Fushicho     时间:2018/12/7

                                                                       目录

          Hadoop2.x 伪分布式环境搭建及测试

首先配置JAVA环境

第一步:下载JAVA包

第二步:将文件传送到虚拟机上

第三步:开始配置JAVA环境:

下面进行Hadoop环境的配置

第一步:下载Hadoop包

第二步:将Hadoop传输到虚拟机上

第三步:解压hadoop包

第四步:配置Hadoop

第五步:格式化文件系统

第六步:启动HDFS

第七步:查看HDFS的NameNode的Web接口

第八步:创建 HDFS 目录,以便执行 MapReduce 任务

第九步:拷贝输入文件到分布式文件系统

第十步:运行 Hadoop 自带的 WordCount 例子

第十一步:将结果从分布式文件系统拷贝到本地

第十二步:验证结果

第十三步:配置 mapred-site.xml

第十四步:配置 yarn-site.xml

第十五步:启动 YARN 的两个节点 ResourceManager 和 NodeManager

第十六步:启动 historyserver

第十七步:查看 ResourceManager 的 Web 界面

第十八步:查看 Job History Server 的 web 页面

第十九步:运行 MapReduce job 任务

第二十步:停止 YARN

第二十一步:关闭主程序


首先配置JAVA环境

第一步:下载JAVA包

点击进入Oracle官方网站下载

第二步:将文件传送到虚拟机上

我使用的是FileZile软件;

第三步:开始配置JAVA环境:

(1)创建一个文件夹

[root@localhost ~]# mkdir training

(2)解压文件

[root@localhost ~]# tar -zxvf jdk-8u191-linux-x64.tar.gz -C /root/training/

(3)将JAVA添加到环境变量中

  [root@localhost ~]# vi /etc/profile

在文件最后加入:

  export JAVA_HOME=/root/training/jdk1.8.0_191            

export PATH=$PATH:$JAVA_HOME/bin

(4)快速生效环境变量

  [root@localhost ~]# source /etc/profile

(5)查看配置是否成功

  [root@localhost ~]#  java –version

若是成功则可以看到:

下面进行Hadoop环境的配置

第一步:下载Hadoop包

这里提供我的百度云盘连接的hadoop-2.7.3的包链接:

提取码:idee

第二步:将Hadoop传输到虚拟机上

我使用的是FileZile软件;

第三步:解压hadoop包

[root@localhost ~]# tar -zxvf hadoop-2.7.3.tar.gz -C /root/training/

第四步:配置Hadoop

(1)配置SSH无密登录本机

[root@localhost ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

[root@localhost ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[root@localhost ~]# chmod 0600 ~/.ssh/authorized_keys

执行如下命令验证SSH配置,如下:

[root@localhost ~]# ssh localhost

(发现原本需要输入验证密码,现在不用了~)

(2)编辑etc/hadoop/hadoop-env.sh,进入hadoop-2.7.3目录下,然后

[root@localhost hadoop-2.7.3]#  vi etc/hadoop/hadoop-env.sh

修改JAVA_HOME的值如下:

export JAVA_HOME=/root/training/jdk1.8.0_191            

export PATH=$PATH:$JAVA_HOME/bin

如下图所示位置:

(3)配置core-site.xml

编辑etc/hadoop/core-site.xml

[root@localhost hadoop-2.7.3]# vi etc/hadoop/core-site.xml

修改内容如下:

<configuration>

<!--配置HDFS的NameNode-->

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://localhost:9000</value>

</property>

<!--配置DataNode保存数据的位置-->

<property>

    <name>hadoop.tmp.dir</name>

    <value>/root/training/hadoop-2.7.3/tmp</value>

</property>

</configuration>

(4)配置hdfs-site.xml

编辑etc/hadoop/hdfs-site.xml

[root@localhost hadoop-2.7.3]#  vi etc/hadoop/hdfs-site.xml

修改如下:

<configuration>

<!--配置HDFS的冗余度-->

<property>

   <name>dfs.replication</name>

   <value>1</value>

</property>

</configuration>

第五步:格式化文件系统

[root@localhost hadoop-2.7.3]#  bin/hdfs namenode -format

如果执行成功,会在日志末尾看到格式化成功的提示,如下:

第六步:启动HDFS

[root@localhost hadoop-2.7.3]#  sbin/start-dfs.sh

第一次操作的话会要求输入yes;

输入jps查看启动的HDFS的管理节点NameNode和数据节点DataNode,以及NameNode的Slave节点,及SecondaryNameNode,如下:

第七步:查看HDFS的NameNode的Web接口

首先关闭防火墙防火墙

[root@localhost hadoop-2.7.3]#  /etc/init.d/iptables stop

[root@localhost hadoop-2.7.3]#  chkconfig --level 35 iptables off

这时候就能访问下面网站了: (IP改为自己虚拟机的IP)

http://192.168.49.131:50070

结果如下:

第八步:创建 HDFS 目录,以便执行 MapReduce 任务

[root@localhost hadoop-2.7.3]#  bin/hdfs dfs -mkdir -p /user/root

也可以在上面的网站中看到hdfs中成功创建了这个目录文件:

第九步:拷贝输入文件到分布式文件系统

[root@localhost hadoop-2.7.3]#  bin/hdfs dfs -put etc/hadoop input

这里举例拷贝 etc/hadoop 目录下的文件到 HDFS 中。

查看拷贝结果

[root@localhost hadoop-2.7.3]# bin/hdfs dfs -ls input

也可在网站中查看,如下:

滑动滚动条向下还有挺多内容,就不截图了

第十步:运行 Hadoop 自带的 WordCount 例子

[root@localhost hadoop-2.7.3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

这里说明一下这句话的含义:

可以见到下图结果就说明成功了:

说明:

[1] 这种模式是在本地运行 MapReduce 任务,如果需要在 YARN 上运行,请看本文后面的

YARN 配置;

[2] 这个例子是计算某个目录下所有文件中包含某个字符串的次数,这里的字符串是匹配'dfs[a-z.]+'成功的次数;

[3] dfs[a-z.]+是正则表达式,表示以dfs开头加上大于等于一个小写英文字母或.的匹配

 

第十一步:将结果从分布式文件系统拷贝到本地

[root@localhost hadoop-2.7.3]# bin/hdfs dfs -get output output

[root@localhost hadoop-2.7.3]# cat output/*

结果如下:

这里可以看到每个包含 dfs 的关键词在 etc/hadoop 的所有文件中出现的次数的统计。

且生成文件在当前目录下,输入ll或ls可以查看到出现一个output文件。

 

第十二步:验证结果

用 linux 命令来统计一下"dfs.class"的次数,结果为 4 次,与 mapreduce 统计的一致。

[root@localhost hadoop-2.7.3]# grep -r 'dfs.class' etc/hadoop/

 

另外,还可以通过 YARN 来提交 job 任务。步骤如下:

 

第十三步:配置 mapred-site.xml

(1)首先修改一下mapred-site.xml.template文件成为etc/hadoop/mapred-site.xml

[root@localhost hadoop-2.7.3]# mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

(2)编辑 etc/hadoop/mapred-site.xml

[root@localhost hadoop-2.7.3]# vi etc/hadoop/mapred-site.xml

修改如下:

<configuration>

<property>

  <name>mapreduce.framework.name</name>

  <value>yarn</value>

</property>

</configuration>

 

第十四步:配置 yarn-site.xml

编辑 etc/hadoop/yarn-site.xml

[root@localhost hadoop-2.7.3]# vi etc/hadoop/yarn-site.xml

修改如下:

<configuration>

<property>

  <name>yarn.nodemanager.aux-services</name>

 <value>mapreduce_shuffle</value>

</property>

</configuration>

 

第十五步:启动 YARN 的两个节点 ResourceManager 和 NodeManager

 [root@localhost hadoop-2.7.3]# sbin/start-yarn.sh

 

第十六步:启动 historyserver

[root@localhost hadoop-2.7.3]# sbin/mr-jobhistory-daemon.sh start historyserver

 

确认进程已启动

[root@localhost hadoop-2.7.3]# jps

 

第十七步:查看 ResourceManager 的 Web 界面

http://192.168.49.131:8088

第十八步:查看 Job History Server 的 web 页面

http://192.168.49.131:19888/

第十九步:运行 MapReduce job 任务

跟前面的命令一样,但是我们将结果输出目录改为 output-yarn,如下:

[root@localhost hadoop-2.7.3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output-yarn 'dfs[a-z.]+'

如果运行太慢,可以到之前的网站上监控进度:

查看结果

[root@localhost hadoop-2.7.3]# bin/hdfs dfs -cat output-yarn/*

可以看到结果与之前执行的一致

第二十步:停止 YARN

[root@localhost hadoop-2.7.3]# sbin/stop-yarn.sh

第二十一步:关闭主程序

最后,如果使用完毕,可以关闭 Hadoop。

[root@localhost hadoop-2.7.3]# sbin/stop-dfs.sh

[root@localhost hadoop-2.7.3]# sbin/mr-jobhistory-daemon.sh stop historyserver

可以通过输入jps查看进程是否都成功关闭了;

(若是将hadoop添加到系统的环境变量中,启动和关闭以及上面进行操作的指令都会简单很多~)

(不过,本文是初学者学习搭建伪分布式系统使用的,为了加深理解而使用~)

参考文献:

https://blog.csdn.net/gobitan/article/details/80993494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值