补充配置
历史服务配置
需求:在8088端口上,对已经结束的任务,无法查看历史信息(19888),历史信息记录:有几个Map Task,有几个Reduce task,任务什么时候提交了,什么启动,什么时候完成。
mapred-site.xml
启动 历史服务
sbin/mr-jobhistory-daemon.sh start historyserver
日志聚集功能
当MapReduce程序在Yarn上运行过程中,产生一些日志文件,需要将这些日志文件收集上传HDFS,一遍后续监控查看
YARN:主节点和从节点
好处:
(1)中央化存储,集中存储方便管理
(2)可以减轻ResourceManager的负载压力
yarn-site.xml
注意:必须重启Yarn和JobHistoryServer服务才生效,需要重新读取配置文件
MapReduce运行Yarn上详解
(1)Client向Yarn主节点RM提交应用
bin/yarn jar MainClass args
(2)RM在某个NM节点上启动一个Container运行AppMaster,运行应用的管理者
(3)AppMaster向RM请求资源,为了运行MapReduce中所有的Task,RM将分配NM是哪个资源,并且告知AppMaster
(4)AppMaster联系NM,启动Container中相关Task(Map Task和Reduce Task)
(5)运行的Task会实时的向AppMaster进行汇报,永不监控整个应用。
(6)当所有Task(Reduce Task)运行完成,appMaster告知RM,销毁AppMaster
(7)RM给Client相应
知识点:
Container容器:将资源(CPU和memory)进行隔离,单独个某个Task独立使用
阿里云服务,给你提供的服务就是一个容器
主机+虚拟化软件
19大政府报告中:
朝阳IT行业前景:ABC
A:人工智能AI
B:大数据,bigdata
C:云计算CloudComputer
什么是大数据:
大数据就是一个钻石矿,人在干,数在转,云在算
**
MapReduce编程
**
工程导入
HDFS API
MapReduce处理数据流程
在整个MapReduce程序中,所有的数据的流程流式都是键值对(Key-value)
Input -> Map ->shuffle->Reduce ->Output
(1)针对于Input和Output来讲,正常情况下,不需要编写任何的代码,
只需要指定对应目录即可。
(2)核心关注map和reduce
MapReduce执行过程
hadoop java spring springMvc
java spring java
input环节:
输入:读取HDFS上数据
输出: Key value
0 hadoop java spring springMvc
28 java spring java
Mapper环节
class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>
<输入Key,输入Value,输出Key,输出Value>
<行偏移量,行内容,XX,YY>
protected void map(KEYIN key, VALUEIN value, Context context)
map要干嘛:
通过 空格 分割,取出里面的单词
输出: key value
Hadoop 1
java 1
spring 1
springMvc 1
java 1
….
shuffle环节:
功能:
分区:
分组:会将相同Key 的value放到一个集合中