• 2020寒假学习记录(1)——Spark及其生态圈的了解


    今天的学习主要是了解spark生态体系以及观看了子雨大数据之Spark入门教程(Scala版)的介绍,现将对spark的初步了解以及日后可能会用到的一些知识总结如下:

    一、spark简介

    Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。

    Spark从Apache的孵化项目到成为Apache的顶级项目,只用了8个月的时间,其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。

    Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型,其中Actor通过它的收件箱来发送和接收非同步信息而不是共享数据,该方式被称为:Shared Nothing 模型)。

    Spark有以下特点:

    ♦  运行速度快

    Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。

    clip_image002

    ♦  易用性好

    Spark不仅支持Scala编写应用程序,而且支持Java和Python等语言进行编写,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。

    ♦  通用性强

    Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无缝的集成并提供一站式解决平台。

    clip_image004

    ♦  随处运行

    Spark具有很强的适应性,能够读取HDFS、Cassandra、HBase、S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算。

    clip_image006

     

    二、Spark生态体系

    Spark生态圈也称为BDAS(伯克利数据分析栈),是伯克利APMLab实验室打造的,力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成来展现大数据应用的一个平台。伯克利AMPLab运用大数据、云计算、通信等各种资源以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界。该生态圈已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。

    Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取数据,以MESS、YARN和自身携带的Standalone为资源管理器调度Job完成Spark应用程序的计算。 这些应用程序可以来自于不同的组件,如Spark Shell/Spark Submit的批处理、Spark Streaming的实时处理应用、Spark SQL的即席查询、BlinkDB的权衡查询、MLlib/MLbase的机器学习、GraphX的图处理和SparkR的数学计算等等。

    Spark生态圈的五大组件:Spark Core、Spark Streaming、Spark SQL、Spark MLlib和Spark GraphX。

    Spark Streaming: 伪实时的流计算,缓冲时间默认为1S,用于实时处理数据。

    Saprk Streaming是spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数据,包括Kafka、Flume、Twitter等,我用的是Kafka,偶尔看下Flume,从数据源获取数据之后,可以使用诸如map、reduce、join和window等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,数据库和现场仪表盘。

    Spark SQL:应用于数据查询,数据存储.Spark SQL可以对接Hive,实现Spark查询Hive仓库数据的功能,底层走的是Spark core.

    Spark SQL可以替换公司90%Hive的工作,平均性能提升3倍+

    Spark MLlib: Spark MLlib是Spark的机器学习库,【.www.jianshu.com/p/9c9abd92b8b8  此链接为简书作者“终生学习丶”的一篇文章,Spark MLlib具体算法可以参考其的文章中的十大数据挖掘的算法,本段来源在本文末尾的第四个参考资料】

    Spark GraphX:是Spark中的图计算框架组件,有算法PageRank、Louvain、LPA、连通子图等。

    其中Spark Core是Spark生态圈的核心组件,其他的四大组件都是基于Spark Core上运行的

    三、Spark术语

    1.Spark运行模式

    运行环境

    模式

    描述

    Local

    本地模式

    常用于本地开发测试,本地还分为local单线程和local-cluster多线程;

    Standalone

    集群模式

    典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持 ZooKeeper来实现HA

    On yarn

    集群模式

    运行在yarn资源管理器框架之上,由yarn负责资源管理,Spark负责任务调度和计算

    On mesos

    集群模式

    运行在mesos资源管理器框架之上,由mesos负责资源管理,Spark负责任务调度和计算

    On cloud

    集群模式

    比如AWS的EC2,使用这个模式能很方便的访问Amazon的S3;

    Spark支持多种分布式存储系统:HDFS和S3

    2.Spark常用术语

    术语

    描述

    Application

    Spark的应用程序,包含一个Driver program和若干Executor

    SparkContext

    Spark应用程序的入口,负责调度各个运算资源,协调各个Worker Node上的Executor

    Driver Program

    运行Application的main()函数并且创建SparkContext

    Executor

    是为Application运行在Worker node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。

    每个Application都会申请各自的Executor来处理任务

    Cluster Manager

    在集群上获取资源的外部服务

    (例如:Standalone、Mesos、Yarn)

    Worker Node

    集群中任何可以运行Application代码的节点,运行一个或多个Executor进程

    Task

    运行在Executor上的工作单元

    Job

    SparkContext提交的具体Action操作,常和Action对应

    Stage

    每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSet

    RDD

    是Resilient distributed datasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类

    DAGScheduler

    根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler

    TaskScheduler

    将Taskset提交给Worker node集群运行并返回结果

    Transformations

    是Spark API的一种类型,Transformation返回值还是一个RDD,

    所有的Transformation采用的都是懒策略,如果只是将Transformation提交是不会执行计算的

    Action

    是Spark API的一种类型,Action返回值不是一个RDD,而是一个scala集合;计算只有在Action被提交的时候计算才被触发。

    参考资料:

    【1】子雨大数据之Spark入门教程(Scala版)

      http://dblab.xmu.edu.cn/blog/spark/

    【2】实战1.Spark及其生态圈简介

      https://blog.csdn.net/xiangxizhishi/article/details/77927564

    【3】百度百科:SPARK

      https://baike.baidu.com/item/SPARK/2229312?fr=aladdin

    【4】Spark生态圈--简书

      https://www.jianshu.com/p/3e97294edaee

  • 相关阅读:
    快速排序
    ABP Error in roboto.css can't resolve '97uahxiqZRoncBaCEI3aWxJtnKITppOI_IvcXXDNrsc.woff2'
    .NET Core Log
    .NET Core的配置文件
    VirtualBox多网卡模式
    Maven 常见错误
    python压缩文件脚本
    Windows7 64bit 安装python3.3 & cx_Freeze-4.3.2
    Ubuntu Linux环境变量
    Ubuntu12.04 64bit 安装 Dropbox
  • 原文地址:https://www.cnblogs.com/Qi77/p/12250710.html
Copyright © 2020-2023  润新知