三 Hadoop运行模式之本地运行模式和伪分布式模式

文章目录

  • 1 本地运行模式
    • 1.1 官方Grep案例
    • 1.2 官方WordCount案例
  • 2 伪分布式模式
    • 2.1 启动HDFS并运行MapReduce程序
      • 2.1.1 分析
      • 2.1.2 执行步骤
    • 2.2 启动YARN并运行MapReduce程序
      • 2.2.1 分析
      • 2.2.1 执行步骤
    • 2.3 配置文件说明

Hadoop运行模式包括:
(1) 本地模式 (开发不会用)
(2) 伪分布式模式 (开发不会用)
(3) 完全分布式模式 (重要开发一定是用这种模式)

虽然本地模式和伪分布式模式开发不会用,但为了感受一下Hadoop的魅力,还是简单介绍一下.

1 本地运行模式

如果成功安装了Hadoop 和配置java和Hadoop的环境变量,就不用再作配置了.直接可以用了.

1.1 官方Grep案例

Grep 和linux的命令的作用一样都是查找文件的字符串的,我们来用以下.

  1. 创建在hadoop-2.7.2文件下面创建一个input文件夹
    三 Hadoop运行模式之本地运行模式和伪分布式模式_第1张图片
  2. 将Hadoop的xml配置文件复制到input
[andy@xiaoai hadoop-2.7.2]$ cp etc/hadoop/*.xml inp
  1. 执行share目录下的MapReduce程序
[andy@xiaoai hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

如果没有报错就是跑过了.

  1. 查看输出结果
    执行成功之后我们可以看到Hadoop目录会新增加一个output文件夹.我们看一下output到底是什么?
[andy@xiaoai output]$ ls
part-r-00000  _SUCCESS
[andy@xiaoai output]$ cat part-r-00000 
1       dfsadmin
[andy@xiaoai output]$ 

1.2 官方WordCount案例

wordcount 命令是统计词出现的次数的,我们来体验以下.

  1. 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
  2. 在wcinput文件下创建一个wc.input文件
  3. 在wc.input文件中输入以下内容
andy yarn
andy mapreduce
xiaoai
xiaoai

执行程序

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

如下图:

[andy@xiaoai hadoop-2.7.2]$ cd wcoutput/
[andy@xiaoai wcoutput]$ ll
总用量 4
-rw-r--r--. 1 andy andy 35 218 20:21 part-r-00000
-rw-r--r--. 1 andy andy  0 218 20:21 _SUCCESS
[andy@xiaoai wcoutput]$ cat part-r-00000 
andy    2
mapreduce       1
xiaoai  2
yarn    1
[andy@xiaoai wcoutput]$ 

它就会把每个词出现的次数给统计出来.

2 伪分布式模式

伪分布式模式就是在一台机器上运行Hadoop的相关模块,但实际情况是不会出现只有一台机器在运行,所以伪分布式模式在实际生产中是不会用的,所以才叫伪分布式模式,但不代表它没有用,伪分布式模式的配置可以让我们更好的理解Hadoop.

2.1 启动HDFS并运行MapReduce程序

2.1.1 分析

(1)配置集群
(2)启动、测试集群增、删、查
(3)执行WordCount案例

2.1.2 执行步骤

(1)配置集群
(a)配置:hadoop-env.sh
hadoop-env.sh文件在:

hadoop-2.7.2/etc/hadoop(该文件夹是Hadoop配置文件夹,如果找不到配置文件,一般都会在该文件夹里面找)

打开hadoop-env.sh文件,修改JAVA_HOME.
在这里插入图片描述
改成设置在环境的JAVA_HOME:

 24 # The java implementation to use.
 25 export JAVA_HOME=/opt/module/jdk1.8.0_144 

(b)配置:core-site.xml
在标签里面加如下内容:

<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://xiaoai:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

三 Hadoop运行模式之本地运行模式和伪分布式模式_第2张图片
(c)配置:hdfs-site.xml
在标签里面加如下内容:

<!-- 指定HDFS副本的数量为1(因为只有一台机器) -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

三 Hadoop运行模式之本地运行模式和伪分布式模式_第3张图片
(2)启动集群

(a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs namenode -format

(b)启动NameNode

[andy@xiaoai hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

(c)启动DataNode

[andy@xiaoai hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode

(3)查看集群

(a) 用 jps 命令 查看namenode和datanode 进程是否跑起来.
(注意: jps 是jdk的命令,只有安装了jdk才能使用,作用是查看java进程)

[andy@xiaoai hadoop-2.7.2]$ jps
29003 DataNode
29084 Jps
28893 NameNode
[andy@xiaoai hadoop-2.7.2]$ 

(b) web端查看HDFS文件系统
http://xiaoai:50070/dfshealth.html#tab-overview
这里的xiaoai是要配置了hosts文件才可以使用,如果没有配置就要用ip地址代替.
开开之后我们可以看到如下:
三 Hadoop运行模式之本地运行模式和伪分布式模式_第4张图片
都是一些Hadoop的说明,重要的是上面的Utilities 选项
先选择Utilities -> Browse the file system.
三 Hadoop运行模式之本地运行模式和伪分布式模式_第5张图片
就可以看到Hadoop 的文件,这里是空,因为我们没有上传任何文件.

(c)查看产生的Log日志
说明:遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
Log文件在在logs文件夹下:
三 Hadoop运行模式之本地运行模式和伪分布式模式_第6张图片

(4)操作集群
(a)在HDFS文件系统上创建一个input文件夹

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -mkdir /user/andy/input

(b)将测试文件内容上传到文件系统上

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -put wcinput/wc.input /user/andy/input/

(c)查看上传的文件是否正确

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -ls  /user/andy/input/
Found 1 items
-rw-r--r--   1 andy supergroup         39 2020-02-18 21:19 /user/andy/input/wc.input
[andy@xiaoai hadoop-2.7.2]$ 

查看文件内容

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -cat /user/andy/input/wc.input
andy yarn
andy mapreduce
xiaoai
xiaoai
[andy@xiaoai hadoop-2.7.2]$ 

(d)运行MapReduce程序

[andy@xiaoai hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/andy/input /user/andy/output

(e)查看输出结果
命令行查看:

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -cat /user/andy/output/*
andy    2
mapreduce       1
xiaoai  2
yarn    1
[andy@xiaoai hadoop-2.7.2]$ 

游览器查看:
三 Hadoop运行模式之本地运行模式和伪分布式模式_第7张图片
这个input就是我们刚才创建的,里面有我们上传上去的那个文件.而output是运行mapreduce产生的结果.
三 Hadoop运行模式之本地运行模式和伪分布式模式_第8张图片
我们点一下后面的文件就可以下载对应的文件.
我们也可以用命令行下载:

hdfs dfs -get /user/andy/output/part-r-00000 ./wcoutput/

2.2 启动YARN并运行MapReduce程序

2.2.1 分析

(1)配置集群在YARN上运行MR
(2)启动、测试集群增、删、查
(3)在YARN上执行WordCount案例

2.2.1 执行步骤

(1)配置集群
(a)配置yarn-env.sh
   配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144

三 Hadoop运行模式之本地运行模式和伪分布式模式_第9张图片
(b)配置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>xiaoai</value>
</property>

三 Hadoop运行模式之本地运行模式和伪分布式模式_第10张图片
(c)配置:mapred-env.sh
配置一下JAVA_HOME

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

(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml

[andy@xiaoai hadoop]$ mv mapred-site.xml.template mapred-site.xml

然后在mapred-site.xm文件添加如下内容:

<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

(2)启动集群
(a)启动前必须保证NameNode和DataNode已经启动
(b)启动ResourceManager

[andy@xiaoai hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

(c)启动NodeManager

[andy@xiaoai hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

(d) 用jps查看进程是否起来.

(3)集群操作
(a)YARN的浏览器页面查看,如图2-35所示
http://xiaoai:8088/cluster
三 Hadoop运行模式之本地运行模式和伪分布式模式_第11张图片
(b)删除文件系统上的output文件

[andy@xiaoai hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/andy/output/

(c)执行MapReduce程序

[andy@xiaoai hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/andy/input /user/andy/output

这时候我们可以看到web上有一个作业在跑

三 Hadoop运行模式之本地运行模式和伪分布式模式_第12张图片

2.3 配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:
三 Hadoop运行模式之本地运行模式和伪分布式模式_第13张图片
(2)自定义配置文件:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

你可能感兴趣的:(#,数据技术之Hadoop)