一: MapReduce概述(了解)
MapReduce是hadoop三大组件之一,是分布式计算组件
Map阶段 : 将数据拆分到不同的服务器后执行Maptask任务,得到一个中间结果
Reduce阶段 : 将Maptask执行的结果进行汇总,按照Reducetask的计算 规则获得一个唯一的结果
我们在MapReduce计算框架的使用过程中,我们只需要关注,Map任务的规则,和Reduce任务的规则即可
MapReduce的核心思想是: 先分(Map)再和(Reduce)
思考: MapReduce中hadoop服务帮我们完成了什么???
我们自己完成的是map和Reduce任务的规则制定.
Hadoop 完成了:
数据的拆分多个部分分别指定不同服务进行计算
申请计算资源
读取计算数据
reduce汇总map结果
写入计算结果(hdfs)
......
Hadoop的出现大大简化了大数据的开发工作,我们只需要关注20%的业务计算,而80%的技术问题,都由hadoop 帮我们解决了.
思考: 所有的计算任务都可以使用mapreduce任务解决么? 什么样的任务可以使用mapreduce任务处理.
一个复杂任务,可以拆分为多个简单任务.
任务之间没有任何依赖关系,可以同时执行
结果之间没有依赖关系,可以随机合并.
将文件数据上传hdfs的/input目录下
cd /export/server/hadoop/share/hadoop/mapreduce hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output
二、YARN概述(了解)
yarn是一个分布式资源调度平台
yarn的作用是给mapreduce提供计算资源
yarn中都调度了哪些集群资源?
内存资源和cpu资源
yarn中资源调度的目的是什么?
提高集群资源的利用率,防止部分程序恶意占用资源, 采用申请制,申请多少资源就使用多少资源
yarn是hadoop生态圈发展的前提:
yarn不光可以对于hadoop平台的MR任务进行资源调度,可以对于所有的基于yarn的规则申请资源的服务进行资源调度,也就保证了我们基于hadoop组件运行的其他大数据服务可以获得合理的资源分配.
除了MapReduce,我们的Yarn还支持多种计算引擎 spark,flink等..
三、YARN架构(重要)
Yarn是标准的主从架构集群
主角色ResourceManager: 统一管理和分配集群资源,监控每一个NodeManager的健康状况.
从角色NodeManager: 统计