Hadoop3_03

4 Hadoop运行模式

Hadoop运行模式包括:本地模式伪分布式模式以及完全分布式模式
Hadoop官方网站

http://hadoop.apache.org/

4.1 本地运行模式

4.1.1 官方Grep案例

  • 1.创建在hadoop-3.1.3文件下面创建一个input文件夹
cd /opt/module/hadoop-3.1.3
mkdir input
  • 2.(准备数据)将Hadoop的xml配置文件复制到input
cp etc/hadoop/*.xml input

也可以自行在input目录下准备文件

  • 3.执行share目录下的MapReduce程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
  • 4.查看输出结果
cat output/*

4.1.2 官方WordCount案例

  • 1.创建在hadoop-3.1.3文件下面创建一个wcinput文件夹
mkdir wcinput
  • 2.在wcinput文件下创建一个wc.input文件
cd wcinput
  • 3.编辑wc.input文件
vim wc.input

在文件中输入如下内容

hadoop yarn
hadoop mapreduce
dev1
dev1

保存退出:

:wq
  • 4.回到Hadoop目录/opt/module/hadoop-3.1.3
  • 5.执行程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
  • 6.查看结果
[dev1@hadoop101 hadoop-3.1.3]$ cat wcoutput/part-r-00000

看到如下结果:

dev1    2
hadoop    2
mapreduce    1
yarn    1

4.2 伪分布式运行模式

4.2.1 启动HDFS并运行MapReduce程序

1.分析

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

2.执行步骤
  • 2.1 配置集群

-(a)配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
[dev1@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_212
修改JAVA_HOME 路径:

export JAVA_HOME=/opt/module/jdk1.8.0_212
(b)配置:core-site.xml

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

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

(c)配置:hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
  • 2.2 启动集群
    (a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
[dev1@hadoop101 hadoop-3.1.3]$ bin/hdfs namenode -format

(b)启动NameNode

[dev1@hadoop101 hadoop-3.1.3]$ hdfs --daemon start namenode

(c)启动DataNode

[dev1@hadoop101 hadoop-3.1.3]$ hdfs --daemon start datanode 
  • 2.3 查看集群
    (a)查看是否启动成功
[dev1@hadoop101 hadoop-3.1.3]$ jps

13586 NameNode
13668 DataNode
13786 Jps
注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
(b)web端查看HDFS文件系统
http://hadoop101:9870
(c)常用端口号说明,表4-1所示
在这里插入图片描述

  • 2.4 出现错误看日志,看日志,看日志,重要的事情说三遍~~~
    说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
    通过tail -n 100日志文件 的形式查看
    当前目录:/opt/module/hadoop-3.1.3/logs
hadoop-dev1-datanode-hadoop101.log
hadoop-dev1-namenode-hadoop101.log

  • (5)操作集群
    (a)在HDFS文件系统上创建一个input文件夹
[dev1@hadoop101 hadoop-3.1.3]$ hdfs dfs -mkdir -p /user/dev1/input

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

[dev1@hadoop101 hadoop-3.1.3]$hdfs dfs -put words.txt  /user/dev1/input

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

[dev1@hadoop101 hadoop-3.1.3]$hdfs dfs -ls  /user/dev1/input/
[dev1@hadoop101 hadoop-3.1.3]$hdfs dfs -cat words.txt  /user/dev1/input

(d)运行MapReduce程序

[dev1@hadoop101 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/dev1/input/ /user/dev1/output

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

[dev1@hadoop101 hadoop-3.1.3]$ hdfs dfs -cat /user/dev1/output/*

(f)将测试文件内容下载到本地

[dev1@hadoop101 hadoop-3.1.3]$ hdfs dfs -get /user/dev1/output/part-r-00000 ./

(g)删除输出结果

[dev1@hadoop101 hadoop-3.1.3]$ hdfs dfs -rm -r /user/dev1/output

4.2.2 格式化需要注意的问题

(d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?

[dev1@hadoop101 hadoop-3.1.3]$ cd data/tmp/dfs/name/current/
[dev1@hadoop101 current]$ cat VERSION
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
[dev1@hadoop101 hadoop-3.1.3]$ cd data/tmp/dfs/data/current/
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837

注意:格式化NameNode,会产生新的集群id,导致NameNodeDataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和logs日志,然后再格式化NameNode。

 find ./ -name VERSION

查找出来使用vim打开并进行比对

4.2.3 启动YARN并运行MapReduce程序

  • 1.分析
    (1)配置集群在YARN上运行MR
    (2)启动、测试集群
    (3)在YARN上执行WordCount案例
  • 2.执行步骤
    (1)配置集群
    (a)配置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>hadoop101</value>
</property>
<property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
 </property>

(b)配置mapred-site.xml

 [dev1@hadoop101 hadoop]$ vim mapred-site.xml

编辑

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

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

[dev1@hadoop101 hadoop-3.1.3]$ yarn --daemon start resourcemanager

(c)启动NodeManager

[dev1@hadoop101 hadoop-3.1.3]$ yarn --daemon start nodemanager
  • 3.集群操作

(a)YARN的浏览器页面查看

http://hadoop101:8088

(b)执行MapReduce程序

[dev1@hadoop101 hadoop-3.1.3]$ hadoop jar  share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/dev1/input  /user/dev1/output

(c)查看运行结果

[dev1@hadoop101 hadoop-3.1.3]$ bin/hdfs dfs -cat /user/dev1/output/*

4.2.4 配置文件说明

Hadoop配置文件分两类:默认配置文件自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

  • (1)默认配置文件:
    要获取的默认文件 文件存放在Hadoop的jar包中的位置
    在这里插入图片描述

  • (2)自定义配置文件:
    core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翁老师的教学团队

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

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

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

打赏作者

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

抵扣说明:

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

余额充值