在一台主机模拟多主机。
Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进程都在同一台机器上运行,是相互独立的Java进程。
在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
1、修改配置文件
下面三个配置文件的路径为:/opt/module/hadoop-2.7.2/etc/hadoop
(1) 配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
修改JAVA_HOME 路径:
(2) 配置:core-site.xml
这里要根据ip和端口进行对应的修改
(3) 配置:hdfs-site.xml
2、启动
(1) 格式化NameNode(第一次启动时格式化,以后就不要总格式化)
[test@hadoop150 hadoop-2.7.2]$ bin/hdfs namenode -format
(2) 启动NameNode
[test@hadoop150 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
(3) 启动DataNode
[test@hadoop150 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
3、查看状态
(1) 查看是否启动成功
(2) web端查看hdfs文件系统
在浏览器中输入:
http://192.168.1.150:50070/dfshealth.html#tab-overview
(3) 查看产生的Log日志
当前目录:/opt/module/hadoop-2.7.2/logs
(4) 思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式化NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
4、测试
(1) 在HDFS文件系统上创建一个input文件夹
(2) 将测试文件内容上传到hdfs文件系统上
(3) 查看上传的文件是否正确
(4) 运行MapReduce程序
(5) 查看输出结果
浏览器查看:
(6) 将测试文件内容下载到本地
1、修改配置文件
(1) 配置 yarn-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/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>hadoop150</value>
</property>
(3) 配置 mapred-env.sh
配置以下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(4) 将 mapred-site.xml.template 重新命名为 mapred-site.xml
[test@hadoop150 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[test@hadoop150 hadoop]$ vi mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2、启动集群
(1) 启动前必须保证 NameNode 和 DataNode 启动
(2) 启动 ResourceManager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
(3) 启动 NodeManager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
3、集群操作
(1) YARN的浏览器页面查看
这里要注意ip和端口要和自己的端口对应
http://192.168.1.150:8088/cluster
(2) 删除HDFS文件系统上的output文件夹
[test@hadoop150 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /output
(3) 执行MapReduce程序
[test@hadoop150 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
(4) 查看你运行结果
[test@hadoop150 hadoop-2.7.2]$ bin/hdfs dfs -cat /output/*
为了查看程序的历史运行情况,需要配置一下历史服务器,具体配置步骤如下:
1、配置 mapred-site.xml
在文件中增加如下配置:
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop150:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop150:19888</value>
</property>
2、启动历史服务器
[test@hadoop150 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
3、查看历史服务器是否启动
[test@hadoop150 hadoop-2.7.2]$ jps
4、查看JobHistory
注意对应的ip和端口
http://192.168.1.150:19888/jobhistory
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到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、关闭NodeManager、ResourceManager和HistoryManager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[test@hadoop150 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
3、启动NodeManager、ResourceManager和HistoryManager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
[test@hadoop150 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
[test@hadoop150 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
4、删除HDFS上已经存在的输出文件
[test@hadoop150 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /output
5、执行WordCount程序
[test@hadoop150 hadoop-2.7.2]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
6、查看日志
注意对应的ip和端口
http://192.168.1.150:19888/jobhistory
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
1、默认配置文件
要获取的默认文件 | 文件存放在Hadoop的jar包中的位置 |
---|---|
core-default.xml | hadoop-common-2.7.2.jar/ core-default.xml |
hdfs-default.xml | hadoop-hdfs-2.7.2.jar/ hdfs-default.xml |
yarn-default.xml | hadoop-yarn-common-2.7.2.jar/ yarn-default.xml |
mapred-default.xml | hadoop-mapreduce-client-core-2.7.2.jar/ mapred-default.xml |
2、自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
在配置伪分布式hadoop的第1步到第10步时请参考我的另一篇文章 “Hadoop环境搭建之本地运行模式”,软件包链接也在那篇文章里。链接如下:
https://blog.csdn.net/a1786742005/article/details/104078490