Spark大数据技术与应用

本文详细介绍了Spark的发展历史、特点,包括其快速运行、易用接口、通用性和随处运行,以及Spark的运行架构、核心数据集RDD、生态体系中的关键组件如BlinkDB、SparkStreaming和MLlib,并探讨了Spark在大数据处理中的应用场景和不同运行模式。
摘要由CSDN通过智能技术生成

文章目录

    • 第一章Spark概述
      • 任务一  认识Spark
        • 1.Spark发展历史
        • 2.Spark的特点
        • 3.Spark的生态圈
        • 4.Spark的应用场景
      • 任务二
      • 任务三 了解Spark运行架构与原理
        • 1.Spork架构
        • 2.Spark作业运行流程
        • 3.Spork核心数据集RDD
        • 4.Spork核心原理
    • 第二章

任务一.认识Spark

        Spark是用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,Spark官网上介绍,它具有运行速度快、易用性好、通用性强和随处运行等特点。

 1.Spark发展历史。

       

 2.Spark的特点。  

1)快速  :逻辑回归算法(had一般需要多次迭代对存储数据进行迭代计算spark是hadoop MapReduce运行速度的100多倍.spark基于硬盘也快10多倍spark与Hadoop mapreduce的运行速度差异大的原因是spark的中间数据存放于内存中有更高的迭代效率而Hadoop mapreduce存放于hdfs中,涉及硬盘的读写故而运算效率低。

2)易用 :Spark 支持使用 Java、Python、R 和 Scala 的 API,还支持超过 80 种高级算法,使用户可以快速构建不同的应用而且 Spark 支持交互式的 Python 和 Scala 的 shell,可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法。

3)通用 :spark可以与SQL语句实时计算及其他复杂的分析计算进行良好的结合。spark框架包含多个紧密集成的组件包括Spark SQL(既席查询)Spark Streaming(实时流处理)Spark MLlib(机器学习库)Spark GraphX(图计算),并可在同一应用中无缝使用这些组件,相较于hadoop maproduce框架,无论是性能还是在方案统一性方面都有着极大的优势。

4)随处运行 :用户可以使用Spark的独立集群模式运行。Spark 可以非常方便地与其他的开源产品进行融合。作为一个分布式的框架,本身没有储存功能但是可以HDFS,Cassandra,HBase,Hive,等数据源中读取数据。

5)代码简洁 :Spark支持使用Scala python等语言编写,相对于Java简洁

3.Spark的生态圈。

1)Spark Core 是Spark生态系统的核心组件,提供底层框架及核心支持。

2)BlinkDB 用在海量数据上进行交互式查询的大规模并行查询,以及允许用户通过权衡数据精度缩短查询响应时间,数据的进步将被控制在允许的误差范围。为了达到这个目标,BlinkDB 使用两个核心思想:

通过一个自适应优化框架,随着时间的推移,从原始数据建立并维护一组多维样本;

通过一个动态样本选择策略,选择一个适当大小的示例,然后基于查询的准确性和响应时间满足用户查询需求。

3)Spark Streamingd 可以进行实时数据流式计算,列入一个网站的流量是每时每刻都有可能产生的。如果想要分析过去15分钟或一小时的两则可以运用Spark Streaming组件解决这个问题。

4)MLBase : MLBase是spark生态圈的一部分,专注于机器学习领域,专注学习门槛较低,因此即使一些可能并不了解积极学习的用户也可以方便的使用MLBase。MLBase由四部分组成MLlib,MLi,ML Optimizer,MLRuntime。

5)GraphX :图计算应用多数情况下处理庞大数据量GraphX相较于自行编写的算法更简单一点因为它内置了多个与图相关算法。

6)SparkR :Spark是AMPLab 发布的一个R语言开发包,使得R语言编写程序不止可以在单击运作,也可作为Spark作业运行在集群上极大提高语言数据处理能力。

  4.Spark的应用场景。

    目前大数据应用于各行各业大数据应用的普遍要求计算量大,效率高Spark满足这些要求已发展成大数据处理领域内非常受欢迎的开源项目。

                

任务二 小白还在整理

任务三.了解Spark运行架构与原理

1.Spork架构

1)Driver Progrom:驱动程序 Application中的main函数并创建 SparkContext驱动程序包含Driver功能的代码和分布在集群中多个节点上的Executor代码。

2)SparkContext :应用上下文,控制整个生命周期。

3) Cluster Manager :资源管理器,即在集群上获去资源的外部服务,目前主要有Standalone和YARN。

      (1)Standalone是Spork原生的资源管理器由master进程负责配资源的分配,也可以理解为使用Standalone时Cluster Manager是Master进程所在节点。

        (2)YARN是Hadoop集群的资源管理器,若使用YARN作为Spark程序运行的资源管理由ResourceManager负责资源分配。

4)worker node 集群中任何可以运行 Application代码的节点,运行一个或多个Executor启动线程。 

5)Executor :运行在worker nodo上的任务(Tesk)执行器,Executor启动线程池运行Tesk 并负责将数据存在内存和磁盘上,每个应用程序都会申请各自的Executor以处理任务。

6)Tesk :被发送到某个Executor的具体任务。

2.Spark作业运行流程

1)Spork有三种运行模式。Spark 的运行模式有 Local(也称单节点模式),Standalone(集群模式),Spark on Yarn(运行在Yarn上)        

       1) Local 模式是最简单的一种Spark运行方式,它采用单节点多线程(cpu)方式运行,local模式是一种OOTB(开箱即用)的方式,只需要在spark-env.sh导出JAVA_HOME,无需其他任何配置即可使用,

        2)Standalone模式是Spark实现的资源调度框架,其主要的节点有Client节点、Master节点和Worker节点。其中Driver既可以运行在主(Master)节点上,也可以运行在本地Client端。

             当使用是spark-shell交互式工具提交spark作业时需要执行spark-shell脚本t,Driver在主节点上运行;

              当使用是spark-submit工具提交作业或直接在Eclipes,IntelliJIDEA等开发工具上使用”new SparkConf().setMaster(“spark://master:7077”)”方式运行Spark任务时,Driver是运行在本地Client端上的。 

        3)YNRN模式:在YAON模式中不需要启动Spork独立集群,根据Driver在集群的位置分为两种模式。

        1:YAON 客户端模式(YARN-Client)

        2:YAON 集群模式 (YAON-Cluster)

3.Spork核心数据集RDD

1.RDD叫做弹性分布式数据集,是spark中核心的数据模型,spark的所有操作都是围绕RDD进行的。

RDD有两个关键特点:

        (1)数据被分区

        大数据处理的数据的一般很大,为了能够并行计算,需要把数据分区存储,就是把数据分散存储在多个节点上,RDD会保存数据分区信息,以便处理数据,所有分区数据分布储存在不同机器的内存或磁盘中。

        (2)数据依赖性

        spark中主要处理过程是RDD的转化过程,怎么理解依赖性,假如RDD1通过某种计算(map,groupByKey)转换为RDD2,那么就认为RDD2依赖RDD1,在spark中依赖关系分为两种,一种是窄依赖,一种是宽依赖也叫shuffle 依赖。债依赖是一个子RDD只能有一个父RDD,宽依赖是一个子RDD有多个父RDD,我用图说明依赖关系。

2)RDD支持两种类型的操作:(1)转换操作(转换子):将原始数据加载为RDD数据或将一个RDD转换为另一个RDD的操作。

                                                  (2)行动操作(行动子):将RDD储存在硬盘中或触发转换操作执行的操作。

4.Spork核心原理

应先理解数据依赖性,分为宽依赖和窄依赖上文提到过。

Spark中还有一个重要的概念,即stage一般而言一个作业会被划分成一定数量的各个stage,直接按照顺序执行。一个作业会被拆分成多组任务,每组任务是一个stage

(能力有限,还是小白出错地方希望大佬留言)

 

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值