三、Hadoop运行模式(本地模式、伪分布模式)

       上篇博客介绍了Linux下搭建Hadoop运行环境,本篇主要介绍Hadoop的本地运行模式和伪分布式模式,关注专栏《破茧成蝶——大数据篇》查看相关系列的文章~


目录

一、本地模式

1.1 官方Grep案例

1.2 官方WordCount案例

二、 伪分布式模式

2.1 启动HDFS运行MapReduce程序

2.2 启动YARN运行MapReduce程序

2.3 配置历史服务器

2.4 配置日志的聚集


 

一、本地模式

1.1 官方Grep案例

1、在hadoop-2.7.2下创建input文件夹

[root@node1 hadoop-2.7.2]# mkdir input

2、将Hadoop的xml配置文件拷贝到input目录下

[root@node1 hadoop-2.7.2]# cp etc/hadoop/*.xml input

3、执行share目录下的MapReduce程序

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

4、查看结果

[root@node1 hadoop-2.7.2]# cat output/*
1       dfsadmin

1.2 官方WordCount案例

1、在hadoop-2.7.2下创建wcinput文件夹

[root@node1 hadoop-2.7.2]# mkdir wcinput

2、在wcinput文件下创建一个wc.input文件

[root@node1 hadoop-2.7.2]# cd wcinput

[root@node1 hadoop-2.7.2]# touch wc.input

3、编辑wc.input文件

[root@node1 hadoop-2.7.2]# vi wc.input

在文件中输入如下内容:

hadoop yarn

hadoop mapreduce

spark

4、回到Hadoop目录/opt/modules/hadoop-2.7.2

5、执行程序

[root@node1 hadoop-2.7.2]# hadoop jar

 share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput

6、查看结果

[root@node1 hadoop-2.7.2]# cat wcoutput/part-r-00000

spark 2

hadoop  2

mapreduce       1

yarn    1

二、 伪分布式模式

2.1 启动HDFS运行MapReduce程序

1、配置集群

(1)在hadoop-env.sh中修改JAVA_HOME路径

export JAVA_HOME=/opt/modules/jdk1.8.0_144

(2)修改core-site.xml配置文件

<!-- 指定HDFS中NameNode的地址 -->

<property>

        <name>fs.defaultFS</name>

        <value>hdfs://node1:9000</value>

</property>



<!-- 指定Hadoop运行时产生文件的存储目录 -->

<property>

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

        <value>/opt/modules/hadoop-2.7.2/data/tmp</value>

</property>

(3)配置hdfs-site.xml配置文件

<!-- 指定HDFS副本的数量,单机只能指定一个副本 -->

<property>

        <name>dfs.replication</name>

        <value>1</value>

</property>

2、启动集群

(1)格式化NameNode

[root@node1 hadoop-2.7.2]# bin/hdfs namenode -format

(2)启动NameNode

[root@node1 hadoop-2.7.2]# sbin/hadoop-daemon.sh start namenode

starting namenode, logging to /opt/modules/hadoop-2.7.2/logs/hadoop-root-namenode-node1.out

[root@node1 hadoop-2.7.2]# jps

29863 Jps

29803 NameNode

[root@node1 hadoop-2.7.2]#

(3)启动DataNode

[root@node1 hadoop-2.7.2]# sbin/hadoop-daemon.sh start datanode

starting datanode, logging to /opt/modules/hadoop-2.7.2/logs/hadoop-root-datanode-node1.out

[root@node1 hadoop-2.7.2]# jps

30051 Jps

29947 DataNode

29803 NameNode

[root@node1 hadoop-2.7.2]#

3、启动成功后,在浏览器查看HDFS文件系统。

4、查看产生的log日志

[root@node1 logs]# pwd

/opt/modules/hadoop-2.7.2/logs

       注意:NameNode格式化一次即可,不可以重复格式化。格式化NameNode会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往数据。所以,格式化NameNode时,要先删除data数据和log日志,然后再格式化NameNode

[root@node1 current]# pwd
/opt/modules/hadoop-2.7.2/data/tmp/dfs/name/current
[root@node1 current]# cat VERSION 
#Mon Apr 27 13:11:17 CST 2020
namespaceID=1774549806
clusterID=CID-6da8d858-532a-4e38-b954-f164e63a9924
cTime=0
storageType=NAME_NODE
blockpoolID=BP-83434581-192.168.0.192-1587017800137
layoutVersion=-63
[root@node1 current]# pwd
/opt/modules/hadoop-2.7.2/data/tmp/dfs/data/current
[root@node1 current]# cat VERSION 
#Mon Apr 27 13:12:01 CST 2020
storageID=DS-f135ada4-7135-4e43-b064-a87b40c43ba9
clusterID=CID-6da8d858-532a-4e38-b954-f164e63a9924
cTime=0
datanodeUuid=4f2ac5ff-aedd-4554-93e4-88618536ebdc
storageType=DATA_NODE
layoutVersion=-56
[root@node1 current]#

5、操作集群

(1)在HDFS上创建一个input文件夹

[root@node1 ~]# hdfs dfs -mkdir -p /user/xzw/input

[root@node1 ~]# hdfs dfs -ls /user/xzw

Found 1 items

drwxr-xr-x   - root supergroup          0 2020-04-27 13:28 /user/xzw/input

(2)将测试文件上传到HDFS中

[root@node1 hadoop-2.7.2]# hdfs dfs -put ./wcinput/wc.input /user/xzw/input

[root@node1 hadoop-2.7.2]# hdfs dfs -ls /user/xzw/input

Found 1 items

-rw-r--r--   1 root supergroup         46 2020-04-27 13:32 /user/xzw/input/wc.input

(3)运行MapReduce程序

[root@node1 hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/xzw/input/ /user/xzw/output

       查看输出结果:

[root@node1 hadoop-2.7.2]# hdfs dfs -ls /user/xzw/output

Found 2 items

-rw-r--r--   1 root supergroup          0 2020-04-27 13:42 /user/xzw/output/_SUCCESS

-rw-r--r--   1 root supergroup         38 2020-04-27 13:42 /user/xzw/output/part-r-00000

[root@node1 hadoop-2.7.2]# hdfs dfs -cat /user/xzw/output/part-r-00000

spark        2

hadoop      2

mapreduce        1

yarn  1

2.2 启动YARN运行MapReduce程序

1、配置集群

(1)配置yarn-env.sh

export JAVA_HOME=/opt/modules/jdk1.8.0_144

(2)配置yarn-site.xml

<!-- Reducer获取数据的方式-->

<property>

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

        <value>mapreduce_shuffle</value>

</property>



<!-- 指定YARN的ResourceManager的地址-->

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node1</value>

</property>

(3)配置mapred-env.sh

export JAVA_HOME=/opt/modules/jdk1.8.0_144

(4)对mapred-site.xml.template重新命名为:mapred-site.xml,并进行配置。

<!-- 指定MR运行在YARN上 -->

<property>

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

        <value>yarn</value>

</property>

2、启动集群

(1)启动NameNode和DataNode

(2)启动ResourceManager

[root@node1 hadoop-2.7.2]# yarn-daemon.sh start resourcemanager

starting resourcemanager, logging to /opt/modules/hadoop-2.7.2/logs/yarn-root-resourcemanager-node1.out

[root@node1 hadoop-2.7.2]# jps

1136 NameNode

1587 Jps

1236 DataNode

1368 ResourceManager

(3)启动NodeManager

[root@node1 hadoop-2.7.2]# yarn-daemon.sh start nodemanager

starting nodemanager, logging to /opt/modules/hadoop-2.7.2/logs/yarn-root-nodemanager-node1.out

[root@node1 hadoop-2.7.2]# jps

1136 NameNode

1665 NodeManager

1236 DataNode

1368 ResourceManager

1770 Jps

3、浏览器中查看YARN的界面

4、执行MapReduce程序

[root@node1 hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/xzw/input/ /user/xzw/output

       可以在YARN的监控界面查看相关job的状态:

查看运行结果:

[root@node1 hadoop-2.7.2]# hdfs dfs -ls /user/xzw/output
Found 2 items
-rw-r--r--   1 root supergroup          0 2020-04-27 14:09 /user/xzw/output/_SUCCESS
-rw-r--r--   1 root supergroup         38 2020-04-27 14:09 /user/xzw/output/part-r-00000

2.3 配置历史服务器

       为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

1、配置mapred-site.xml,在配置文件中增加以下配置:

 <!-- 历史服务器端地址 -->

  <property>

    <name>mapreduce.jobhistory.address</name>

    <value>node1:10020</value>

  </property>

  <!-- 历史服务器web端地址 -->

  <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>node1:19888</value>

  </property>

2、启动历史服务器

[root@node1 hadoop]# mr-jobhistory-daemon.sh start historyserver

starting historyserver, logging to /opt/modules/hadoop-2.7.2/logs/mapred-root-historyserver-node1.out

[root@node1 hadoop]# jps

6176 Jps

1136 NameNode

1665 NodeManager

1236 DataNode

6133 JobHistoryServer

1368 ResourceManager

3、监控界面查看JobHistory

2.4 配置日志的聚集

       日志聚集是指应用运行完之后,将程序运行日志信息上传到HDFS系统上。日志聚集的好处是可以方便的查看程序运行情况,方便开发测试。这里需要注意的是,开启日志聚集功能,需要重新启动NodeManager、ResourceManager和HistoryManager。

       开启日志聚集的步骤如下:

1、配置yarn-site.xml。

 <!-- 日志聚集功能使用 -->

  <property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

  </property>



  <!-- 日志保留时间设置7天 -->

  <property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

  </property>

2、重启相关服务

3、执行WordCount程序

[root@node1 hadoop-2.7.2]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/xzw/input /user/xzw/output

4、查看历史服务器

 

       本文到此就结束了,下篇文章将会为大家讲述Hadoop的完全分布式~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值