栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark基于内存分布式批量数据处理引擎

Spark基于内存分布式批量数据处理引擎

是Scala(编程语言)实现的
Spark核心概念RDD
         RDD:弹性分布式数据集  是一个只读的 可分区的分布式数据集
                   默认存储在内存 当内存不足时 溢写到磁盘
                   RDD数据以分区的形式在集群中存储
                   RDD具有血统机制 发生数据丢失时 可快速进行数据恢复
                                      Spark集群
    HDFS                    RDD1              RDD2                                 外部存储
Hello spark          ''Hello spark"      "Hello,spark''                       Hello spark 
Hello Hadoop    "Hello Hadoop"   "Hello,Hadoop"                   Hello Hadoop

定义_____
基于内存的(所有操作都是在内存中完成的)    分布式   批量数据处理引擎
功能______
离线式处理 实时流处理(还是批处理  不是真正意义上的流处理) 交互式查询 图计算 机器学习
    
应用场景
离线处理  实时处理 交互式学习 机器学习 数据挖掘 ETL  迭代计算

特点 Spark
轻(Scala编写)    快(小数据集可以控制在毫秒级别的延迟)      灵(不同层面对的灵活性)     巧(借用大数据)        
    存储:HDFS
    Yarn:资源管理和任务调度
                主备选举:Zookeeper
                交互式查询:Hive 

核心:Spack core

离线批发工具__ 直梯___>高延迟
MapRuduce    Hive
实时流处理____阶梯__>低延迟
Strom(Streaming)
_____________________________________________
Spack SQL 处理引擎是Spack core 延迟低
Hive 处理引擎 MapReduce  延迟高

1.Client 需求提出
3.Driver 负责业务逻辑和运行规划
4.ApplicationMaster 向资源部门申请资源                             |
2.ResourceManager 负责整个集群资源统一调度和分配         |
Executor:负责实际计算工作 一个应用会拆分成多个Executor来计算

用户提交一个任务 spack把任务称为application  被Driver拆分 
Application ----(action算子)---->Job----(宽依赖)----->Stage---(Stage末端RDD分区数决定)----->Task
          Spark应用在运行时 Stage划分的依据是 shuffle
                           两类算子
action得到最终结果         Transform得到中间结果

Spack数据类型:
                      RDD;弹性式 分布式 只读的 可分区的数据集   里面包含数据 对数据所要做的操作
          特性;lazy式  只记录什么不去执行  只有遇到Action算子才会从头执行

属于Action算子是:
Reduce collcet count first take saveAsTextFile

窄依赖是指每一个父RDD的Partition最多被子RDD的一个Rartition使用
宽依赖是指多个子RDD的Partition会依赖同一个父RDD的Partition
如果出故障:
窄依赖 只要重算和子RDD分区对应的父RDD分区即可
宽依赖 极端情况下 所有的父RDD分区都要进行重新计算

窄依赖的每个父RDD的分区只会传入到一个字RDD分区中 通常可以在一个节点内完成
宽依赖往往对应着shuffle操作  需要在运输过程中将同一个父RDD的分区传入到不同的子RDD分区中 
                                              中间肯能涉及多个节点之间的数据传输

Spark可以将RDD持久化到内存或磁盘文件中 把RDD持久化到内存中可以
                                              极大提高迭代计算以及各计算模型之间的数据共享
Dataframe是一个不可变弹性分布式数据集
Dataframe是Datset的特例 

表现形式
RDD                                 Dataframe                                  Dataset
1,小红,22            id:String   Name:String  Age:int              value:Penple[age:bigint,id:bigint]
2,小黄,20              1                   小红           22a                  People(id=1,name="小红")

Spark SQL 和Hive
区别:S的执行引擎是Spark core ,Hive默认执行引擎为MapReduce
        S的执行速度是Hive的10-100倍
        S不支持buckets 
联系:S依赖Hive的元数据
        S兼容绝大部分Hive的语法和函数
        S可以使用Hive的自定义函数


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/654395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号