Hadoop运行模式包括:本地模式伪分布式模式,以及完全分布式模式
1、本地模式 安装简单,在一台机器上运行服务,几乎不用做任何配置,但仅限于调试用途。没有分布式文件系统,直接读写本地操作系统的文件系统。
2、伪分布式模式 在单节点上同时启动namenode、datanode、jobtracker、tasktracker、secondary namenode等进程,模拟分布式运行的各个节点。配置已经很接近完全分布式。
3、完全分布式模式 正常的Hadoop集群,由多个各司其职的节点构成。

伪分布式运行模式

需求

已经配置java环境 已经配置hadoop环境

一、启动HDFS并运行MapReduce程序

1.配置集群

配置文件在:$HADOOP_HOME/etc/hadoop目录下

(1)配置:hadoop-env.sh

Linux系统中获取JDK的安装路径并复制:echo $JAVA_HOME

windows hadoop 伪分布式 hadoop伪分布式启动_大数据


修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144

如果配置文件中export JAVA_HOME=$JAVA_HOME则也可以不改。

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_02

(2)配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
    <value>hdfs://hadoop102(此虚拟机的主机名):9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/modules/hadoop-2.7.2/data/tmp(会自动创建)</value>
</property>

windows hadoop 伪分布式 hadoop伪分布式启动_linux_03

(3)配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

windows hadoop 伪分布式 hadoop伪分布式启动_大数据_04

2.启动集群

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

hdfs namenode -format

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_05

(2)启动NameNode

hadoop-daemon.sh start namenode

(3)启动DataNode

hadoop-daemon.sh start datanode

3.查看集群

(1)查看是否启动成功

jps查看是否有NameNodeDataNode进程,有则启动成功。

注意jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps

windows hadoop 伪分布式 hadoop伪分布式启动_linux_06

(2)web端查看HDFS文件系统

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):50070,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):50070

windows hadoop 伪分布式 hadoop伪分布式启动_linux_07


点击Utilities,然后点击Browse the file system,可以查看HDFS上的目录。

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_08


注意:如果50070web页面不能查看,看如下帖子处理:

(3)查看产生的Log日志

日志在’$HADOOP_HOME/logs’目录下。

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_09


说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。

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

windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_10


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

4.操作集群

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

hdfs dfs -mkdir -p /user/nanfeng/input,加上-p选项则为层级创建。

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

hdfs dfs -put wcinput/wc.input /user/nanfeng/inputwcinput/wc.input为上传的本地文件路径,/user/nanfeng/input为保存到HDFS上的路径。

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

hdfs dfs -ls /user/nanfeng/input,查看HDFS上’/user/nanfeng/input’目录下的内容。
hdfs dfs -cat /user/nanfeng/ input/wc.input,查看’wc.input’文件内容。

(4)运行MapReduce程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_11

(5)查看输出结果文件

hdfs dfs -cat /user/nanfeng/output/*

(6)将输出结果文件下载到本地

hdfs dfs -get /user/nanfeng/output/part-r-00000 .//user/nanfeng/output/part-r-00000为下载文件在HDFS上的路径,’./'为保存到本地的路径。

(7)删除HDFS上的输出结果

hdfs dfs -rm -r /user/nanfeng/output/user/nanfeng/output为删除的文件在HDFS上的路径。

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_12

二、启动YARN并运行MapReduce程序

1.配置集群

(1)配置yarn-env.sh

修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_13

(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>hadoop102(此虚拟机的主机名)</value>
</property>

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_14

(3)配置:mapred-env.sh

修改配置文件JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_144

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_15

(4)配置: (对mapred-site.xml.template重新命名或者复制为) mapred-site.xml

cp mapred-site.xml.template mapred-site.xml,将mapred-site.xml.template复制为mapred-site.xml

编辑配置文件:

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

windows hadoop 伪分布式 hadoop伪分布式启动_linux_16

2.启动集群

(1)启动前必须保证NameNode和DataNode已经启动
(2)启动ResourceManager

yarn-daemon.sh start resourcemanager

(3)启动NodeManager

yarn-daemon.sh start nodemanager

(4)查看是否启动成功

jps查看是否有ResourceManagerNodeManager进程,有则启动成功。

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_17

3.集群操作

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

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):8088,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):8088

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_18

(2)执行MapReduce程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。

windows hadoop 伪分布式 hadoop伪分布式启动_linux_19

(3)查看运行结果

在linux上查看:

hdfs dfs -cat /user/nanfeng/output/*

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_20


在Web端查看:

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_21


windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_22


windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_23


windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_24

三、配置历史服务器

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

1. 配置mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102(此虚拟机的主机名):10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102(此虚拟机的主机名):19888</value>
</property>

windows hadoop 伪分布式 hadoop伪分布式启动_大数据_25

2.启动历史服务器

mr-jobhistory-daemon.sh start historyserver

3.查看历史服务器是否启动

jps查看是否有JobHistoryServer进程,有则启动成功。

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_26

4.查看Web页面

在浏览器地址栏输入192.168.20.102(虚拟机的ip地址):19888,如果你的windows已经配置hosts映射,也可以输入hadoop102(虚拟机的主机名):19888

windows hadoop 伪分布式 hadoop伪分布式启动_linux_27

四、配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到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>

windows hadoop 伪分布式 hadoop伪分布式启动_大数据_28

2.关闭ResourceManager、NodeManager 和HistoryManager(没启动则跳过这步)

yarn-daemon.sh stop resourcemanager,关闭ResourceManager。
yarn-daemon.sh stop nodemanager,关闭NodeManager。
mr-jobhistory-daemon.sh stop historyserver,关闭HistoryManager。

3.启动NodeManager 、ResourceManager和HistoryManager

yarn-daemon.sh start resourcemanager,启动ResourceManager。

yarn-daemon.sh start nodemanager,启动NodeManager。

mr-jobhistory-daemon.sh start historyserver,启动HistoryManager。

windows hadoop 伪分布式 hadoop伪分布式启动_hadoop_29

4.执行WordCount程序

若输出路径存在则需要删除:hdfs dfs -rm -R /user/nanfeng/output

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/nanfeng/input /user/nanfeng/outputwordcount为统计次数,/user/nanfeng/input为输入文件在HDFS上的路径,/user/nanfeng/output为输出文件在HDFS上的路径。

注意:MapReduce执行时,如果输出路径存在,则会报错。

windows hadoop 伪分布式 hadoop伪分布式启动_分布式_30

5.查看运行结果

hdfs dfs -cat /user/nanfeng/output/part-r-00000

windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_31

6.查看日志

windows hadoop 伪分布式 hadoop伪分布式启动_linux_32


windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_33


配了日志聚集后的日志可正常显示:

windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_34


没配日志聚集前的日志不会显示:

windows hadoop 伪分布式 hadoop伪分布式启动_大数据_35

五、配置文件说明

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

1.默认配置文件:

windows hadoop 伪分布式 hadoop伪分布式启动_windows hadoop 伪分布式_36

2.自定义配置文件

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