Spark学习总结以及问题

spark

  1. 翻译 Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for graph processing, and Spark Streaming.

  2. 什么是spark?

    Spark是一个基于内存的快速,通用,可扩展的大数据分析引擎

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

  3. spark生态:

    • spark core: spark 的核心计算

    • spark sql :对历史数据做交互式查询(即席查询:用户根据自己的需求 自定义查询)

    • spark Streaming : 近实时计算

    • spark ml :机器学习

    • spark graph :图计算(关注事物本身而且关注事物之间的联系)

  4. 什么是结构化和非结构化?

    1. 结构化:列固定,值不能随便写

    2. 非结构化:列不固定,内容随便写

  5. 实时计算框架Storm sparkString flink 区别?

    1. 有限数据集与无限数据集区别

      1. Storm和Flink是属于无限数据集数据持续增长,用于流式处理

      2. SparkString是属于有限数据集,处理数据大小有限,批量处理

    2. Flink是原生的流处理系统,提供high level的API。Flink也提供 API来像Spark一样进行批处理,但两者处理的基础是完全不同的。Flink把批处理当作流处理中的一种特殊情况。在Flink中,所有 的数据都看作流,是一种很好的抽象,因为这更接近于现实世界

    3. Storm是一个免费并开源的分布式实时计算系统。利用Storm可以很容易做到可靠地处理无限的数据流,像Hadoop批量处理大数据一样,Storm可以实时处理数据。

      Storm 很简单,可用于任意编程语言。Apache Storm 采用 Clojure 开发。Storm 有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式 RPC、ETL 等。

    4. Spark流是对于Spark核心API的拓展,从而支持对于实时数据流的可拓展,高吞吐量和容错性流处理。数据可以由多个源取得,例如:Kafka,Flume,Twitter,ZeroMQ,Kinesis或者TCP接口,同时可以使用由如map,reduce,join和window这样的高层接口描述的复杂算法进行处理。最终,处理过的数据可以被推送到文件系统,数据库和HDFS。Spark Streaming是一个粗粒度的框架【也就是只能对一批数据指定处理方法】,核心是采用微批次(Mcro-batch)架构。和Storm采用的以条处理的不同

  6. spark 的资源调度?

    1. standalone yarn mesos

    2. Spark中涉及的资源调度可以分为4层:

      • YARN对不同SparkApplication(SparkContext)的调度

      • 同一个SparkAppliction内不同资源池(pool)之间的调度

      • 同一个SparkAppliction内同一个资源池(pool)内不同TaskSetManager的调度

      • 同一个SparkAppliction内同一个资源池(pool)内同一个TaskSetManager内的Task调度

  7. 什么是Rdd?

    1. RDD(Resilient Distributed Dataset)叫做分布式数据集,是 Spark 中最基本的数据抽象。

      代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。

  8. Rdd的属性?

    • 一组分区(Partition),即数据集的基本组成单位;

    • 一个计算每个分区的函数;

    • RDD 之间的依赖关系;

    • 一个 Partitioner,即 RDD 的分片函数;

    • 一个列表,存储存取每个 Partition 的优先位置(preferred location)。

  9. Rdd的特点?

    1. RDD 表示只读的分区的数据集,对 RDD 进行改动,只能通过 RDD 的转换操作,由一个 RDD 得到一个新的 RDD,新的 RDD 包含了从其他 RDD 衍生所必需的信息。RDDs 之间存在依赖,RDD 的执行是按照血缘关系延时计算的。如果血缘关系较长,可以通过持久化RDD 来切断血缘关系。

  10. spark on hive 和 hive on spark?

    1. spark on hive:hive作为数据源,spark计算

    2. hive on spark:spark 作为hive 底层的计算引擎  

  11. spark 为什么比hadoop 的mr快?

    1. 基于内存

    2. spark实现了DAG引擎

    3. spark的容错

  12. 什么是DAG?

    1. 有向无环图,DAG(Directed Acyclic Graph)叫做有向无环图,原始的 RDD 通过一系列的转换就就形成了 DAG,根据 RDD 之间的依赖关系的不同将 DAG 划分成不同的 Stage,对于窄依赖, partition 的转换处理在 Stage 中完成计算。对于宽依赖,由于有 Shuffle 的存在,只能在 parent。

  13. spark 的特点?

      • 与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值