什么是伪分布式模式?它与本地运行模式以及完全分布式模式有什么区别?
伪分布式的配置信息,完全是按照完全分布式的模式去搭建的,但是它只有一台服务器,可以用于学习和测试,真正的开发中不可以使用。
目录
一、使用软件
二、启动HDFS并运行MapReduce程序
1、配置集群
2、启动集群
3、查看集群
4、操作集群
5、注意
三、启动Yarn并运行MapReduce程序
1、配置集群
2、启动集群
3、操作集群
四、配置历史服务器
1、配置mapred-site.xml
2、启动历史服务器
3、查看历史服务器是否启动
4、查看JobHistory
五、配置日志的聚集
1、关闭NodeManager 、ResourceManager和HistoryManager
2、配置yarn-site.xml
3、启动NodeManager 、ResourceManager和HistoryManager
4、删除HDFS上已经存在的输出文件
5、执行WordCount程序
6、查看日志
六、配置文件说明
1、VMware15.5
2、centos6.4(64位)
3、java1.8.0_144(64位)
4、hadoop 2.7.2
配置文件都在该目录下 : /opt/module/hadoop-2.7.2/etc/hadoop
(善于利用tab键)
(1)配置:hadoop-env.sh
hadoop-env.sh:修改JAVA_HOME的路径
(2)配置:core-site.xml
其中的hadoop01的位置根据自己的主机名进行相应的修改
hadoop.tmp.dir:hadoop运行时产生文件的存储目录。之后的很多框架默认的存储路径是:/tmp/hadoop-${user.name},但是一般不会把数据存放在系统的tmp目录下,修改到当前工程的路径下。
修改了这一块之后,运行本地模式会报错,因为协议发生了变化,默认的是file:///
fs.defaultFS
hdfs://hadoop01:9000
hadoop.tmp.dir
/opt/module/hadoop-2.7.2/data/tmp
(3)配置:hdfs-site.xml
hdfs-site.xml:指定HDFS副本的数量(默认值是3),副本:同时在3台机器上存储了同一份的数据,任何一台节点的数据挂掉,那么还有两份,还会在另一台服务器上增加这个节点,始终保证这个集群上的副本是3。副本的多少取决去机器的性能
dfs.replication
1
(1)格式化NameNode
格式化NameNode,第一次启动时格式化,以后不要总是格式化,因为格式化一次,就把集群上的数据全部清空了。在格式化的过程当中,如果有任何提示你已经格式化过,是否重新格式化,遇到任何的提示,就应该需要重新格式化,
bin/hdfs namenode -format
sbin目录下,hadoop-daemon.sh是hadoop的守护进程,它可以启动hadoop的NamdeNode,启动Hadoop的DataNode
sbin/hadoop-daemon.sh start namenode
(3)启动DataNode
sbin/hadoop-daemon.sh start datanode
(1)使用jps
查看是否启动了,使用jps的命令,如果提示jps不生效,则可能是jdk安装的问题,或者是没有source /etc/profile
(2)web端查看(注意修改成自己的ip)
http://192.168.223.133:50070/dfshealth.html#tab-overview
(3)查看产生的Log日志
(1)在HDFS问价系统上创建一个input文件夹
bin/hdfs dfs -mkdir -p /user/zzz/input
(2)将测试文件内容上传到文件系统
这里的input文件也可以自己创建一个
bin/hdfs dfs -put wcinput/wc.input /user/zzz/input/
(3)查看上传文件是否正确
可以看到文件夹下有刚刚上传的wc.input文件
bin/hdfs dfs -ls /user/zzz/input/
bin/hdfs dfs -cat /user/zzz/input/wc.input
(4)运行MapReduce程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/zzz/input/ /user/zzz/output
(5)查看输出结果
命令行查看 或者 web端查看
bin/hdfs dfs -cat /user/zzz/output/p*
(6)将输出文件内容下载到本地
bin/hdfs dfs -get /user/zzz/output/part-r-00000 ./wcoutput/
(7)删除输出结果
bin/hdfs dfs -rm -r /user/zzz/output
【关于NameNode需要注意什么?】
在格式化之前,要确定DataNode和NameNode的进程是否退出,再删除data和logs文件夹,对于第一次格式化不存在这个问题。
格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
Yarn由四个部分组成,ResourceManager(RM),NodeManager(NM),ApplicationMaster(AM),Container
配置文件都在该目录下 : /opt/module/hadoop-2.7.2/etc/hadoop
(善于利用tab键)
(1)配置yarn-env.sh
echo $JAVA_HOME
(2)配置yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop01
(3)配置mapred-env.sh
和(1)一样,配置JAVA_HOME
(4)配置(对mapred-site.xml.template重新命名为) mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
mapreduce.framework.name
yarn
(1)启动前必须保证NameNode,DataNode已启动
(2)启动ResourceManager
sbin/yarn-daemon.sh start resourcemanager
(3)启动NodeManager
sbin/yarn-daemon.sh start nodemanager
(1)Yarn浏览器页面查看
http://192.168.223.133:8088/cluster
(2)删除文件系统上的output文件
bin/hdfs dfs -rm -R /user/atguigu/output
(3)执行MapReduce程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/zzz/input/ /user/zzz/ouput
(4)查看运行结果
bin/hdfs dfs -cat /user/zzz/ouput/*
为了查看程序的历史运行情况,需要配置一下历史服务器。
在里面增加如下
mapreduce.jobhistory.address
hadoop01:10020
mapreduce.jobhistory.webapp.address
hadoop01:19888
所有的启动脚本都在 /opt/module/hadoop-2.7.2/sbin 目录下
sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /opt/module/hadoop-2.7.2/logs/mapred-zzz-historyserver-hadoop01.out
查看url:http://192.168.223.133:19888/jobhistory/,点击具体的JobID,会看到更加详细的页面
左侧栏:
Counters会记录你整个系统运行情况的各种技术信息
Configuration:配置信息
Map Tasks:包括Map阶段的名称,状态,开始时间,结束时间等
Reduce Tasks:包括Reduce阶段的名称,状态,开始时间,结束时间等
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager
开启日志聚集功能具体步骤如下:
sbin/mr-jobhistory-daemon.sh stop historyserver
sbin/yarn-daemon.sh stop nodemanager
sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/zzz/input /user/zzz/output
http://192.168.223.133:19888/jobhistory点击具体的JobID,点击logs,就可以看到更为具体的日志
进入/opt/module/hadoop-2.7.2/logs查看也可以。
1、core-site.xml
HDFS中NameNode地址,指定Hadoop运行时产生文件的存储目录
2、hdfs-site.xml
指定HDFS副本的数量
3、yarn-site.xml(yarn目前只用到NodeManager,ResourceManager)
Reducer获取数据的方式,指定YARN的ResourceManager的地址,日志聚集功能使能,日志保留时间设置
4、mapred-site.xml
指定MR运行在YARN上(默认是local),历史服务器端地址,历史服务器web端地址