第七章 MapReduce
1.Hadoop生态系统的两个核心组件:HDFS和MapReduce。MapReduce体系结构:Client、JobTracker、TaskTracker以及Task
2.JobTracker负责资源监控和作业调度,监控所有TaskTracker与Job的健康状况
TaskTracker会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker
4.Map和Reduce函数的输入输出格式
5.map端的Shuffle****进程:
- 输入数据和执行map任务(键值对→多个键值对)
- 写入缓存
- 溢写(分区,排序,合并)(用哈希进行分区;根据key进行排序;合并,将具有相同键的值加起来)
- 文件归并
reduce端的shuffle****进程:
- 领取数据
- 归并数据
- 把数据输入给reduce任务
6,Mapreduce是一种分布式并行编程模型。存储在HDFS的数据集被切分为小数据集,每个map任务输入一个小数据集(分片),map任务会并行处理。map任务生成的结果会作为reduce任务的输入,最终由reduce任务输出结果,写入HDFS。
map函数将输入的元素转化为<key,value>键值对,进行并发处理输出:**<k1,v1>→list(<k2,v2>)**
reduce函数将具有相同键的键值对组合起来,输出处理后的键值对,输出结果合并成一个文件。**<k2,list(v20)>→<k3,v3>**
**7.**大规模数据集处理包括分布式存储和分布式计算。(hadoop中分别对应HDFS和Mapreduce)
对map的输出进行分区,排序,合并,归并,交给reduce来处理,这个过程就叫shuffle。
MapReduce使用inputformat模块对map进行预处理,将输入文件切分为inputsplit(输入分片),每个分片针对一个map任务。
8.Mapreduce的6个执行阶段理解。
第八章 Hadoop再探讨
1.新一代资源管理调度框架YARN包含3个组件:
ResourceManager:
- 处理客户端请求
- 启动/监控ApplicationMaster
- 监控NodeManager
- 资源分配与调度
ApplicationMaster:
- 为应用程序申请资源,并分配给内部任务
- 任务调度,监控与容错
NodeManager:
- 单个节点上的资源管理
- 处理来自ResourceManager/ApplicationMaster的命令
2.MapReduce在Hadoop1.0中资源管理效率低,2.0中设计了yarn(新一代资源管理调度框架)
HDFS单一名称节点存在单点失效问题,解决:HDFS HA(高可用架构),提供名称节点热备份机制
HDFS单一命名节点无法实现资源隔离。解决:HDFS 联邦,管理多个命名空间。
3.Hadoop生态系统中的Pig组件,处理大规模数据的脚本语言,用户编写几条简单的语句,系统自动转换为Mapreduce作业。
4.简而言之,yarn对jobtracker功能进行拆分
5.Hadoop2.0组件,pig,tez,kafaka,
第九章 数据仓库Hive
Hive是一个面向主题的,集成的,相对稳定的,反映历史变化的数据集合,用于支持管理决策。
hive体系结构的4层次:数据源,数据存储和管理,数据服务,数据应用。
hive区别于数据库的地方,可以有历史记录。
hive借助Hadoop来完成数据的存储与处理。
类SQL语言-hiveSQL
以Mapreduce作为执行引擎:
1.HDFS作为高可靠的底层存储方式,存海量数据
2.Mapreduce对海量数据进行批处理,实现高性能运算
3.Hive借助HDFS和Mapreduce实现数据的存储处理,用HiveQL编写的处理逻辑,最终都要转换成Mapreduce任务运行。
4.pig可作为hive的替代工具。Pig是一种数据流语言和运行环境,在Hadoop平台上查询半结构化数据集,将外部数据装载到Hadoop集群中,转化为用户需要的数据格式。
5.HBASE为hive提供实时数据访问。Hbase面向列的,分布式的,可伸缩的数据库,可提供数据的实时访问,hive只能处理静态数据。两者互补。
6.Hive生态系统
第十章 Spark(并行计算框架)
1.spark生态系统主要包含Spark Core(提供内存计算),spark SQL(交互式查询分析) ,Spark Streaming(流计算),Mllib(机器学习算法库组件),GraphX(图计算)等组件。
2.RDD是分布式内存的抽象概念,提供了一种高度受限的共享内存模型。
RDD提供了一组丰富的操作:行动和转换。
行动用于执行计算并指定输出的形式,转换制定RDD之间的相互依赖关系。
转换操作接收并返回RDD,而行动接受RDD但返回非RDD。
运行原理:
(1)创建RDD对象;
(2)SparkContext负责计算RDD之间的依赖关系,构建DAG;
(3)DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行。
rdd特性:高容错 ,中间结果持久化内存
3.Scala是一种多范式编程语言。spark通过scala实现rdd的API。
4.spark特点:运行速度快,容易使用,通用性,运行模式多样。
5.基本概念
DAG:有向无环图,反映RDD之间的依赖关系。(spark基于DAG任务调度执行机制,spark根据rdd依赖关系生成DAG,开始计算)
*RDD:分布式对象集合,只读的分区记录集合。(只读意味着不能直接修改)每个RDD可分为多个分区,每个分区是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算*
作业:一个作业包含多个RDD及其操作。
Executor:运行在工作节点上的一个进程,负责运行任务。(对应Hadoop里的MapReduce)
应用:用户编写的Spark应用程序。
任务:运行在Executor上的工作单元。
阶段:作业调度的基本单位,作业中有多个任务,每组任务就是阶段。
6.spark与Hadoop相比,spark在运算时将运算结果存入内存,hadoop存入磁盘。spark效率更高。
第11章 流计算(简单看看,应该不考)
1.MapReduce-批处理计算,impala-基于历史数据的交互式查询,storm-实时数据流的数据处理
2.流数据特征:
–
数据快速持续到达,潜在大小也许是无穷无尽的
–
数据来源众多,格式复杂
–
数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储
–
注重数据的整体价值,不过分关注个别数据
–
数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序
3.流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
4.流计算过程:数据实时采集、数据实时计算、实时查询服务
5.开源流计算框架Storm
版权归原作者 Xxiaonian 所有, 如有侵权,请联系我们删除。