1. Spark是什么?

  • Spark是一个并行数据处理框架。它允许开发快速、统一的大数据应用程序,将批处理、流处理和交互分析结合起来。

 

2. RDD是什么?

  • Spark的主要核心抽象称为弹性分布式数据集。RDD是满足这些属性的分区数据的集合。不可变、分布式、延迟计算、可捕获是常见的RDD属性。

 

 

3. Immutable 是什么?

  • 一旦创建并赋值,就不可能更改,这个属性称为不变性。Spark在默认情况下是不可变的,它不允许更新和修改。但 可以转换成新的RDD。

 

 

4. Spark 内存计算?

 

  • 将所有数据保存在内存中进行计算,而不是保存到磁盘中。因此Spark捕捉数据的速度比Hadoop快100倍。(可配置)

 

5. Spark engine 的职责?

  • Spark负责跨集群调度、分发和监视应用程序。

 

6. 常见的Spark生态系统?

 

  • Spark SQL
  • Spark streaming
  • 机器学习算法的MLLib
  • GraphX用于图形计算

7. 分区是什么?

  • 分区是数据的逻辑划分,这一思想源于Map-reduce (split)。专门为处理数据而派生的逻辑数据。小块数据也可以支持可伸缩性并加快处理速度。输入数据、中间数据和输出数据都是分区的RDD。

 

8. spark如何对数据进行分区?

  • Spark使用map-reduce API对数据进行分区。在输入格式中,我们可以创建多个分区。在默认情况下,HDFS块大小是分区大小(为了获得最佳性能),但它“可以像Split那样更改分区大小”。

 

9. Spark如何存储数据?

  • Spark是一个处理引擎,没有存储引擎。它可以从任何存储引擎(如HDFS、S3和其他数据资源)检索数据。

 

10 .什么是SparkCore?

  • SparkCore是apache spark framework的一个基础引擎。内存管理、故障诊断、调度和监视作业以及与存储系统的交互是Spark的主要功能。

 

11. SparkSQL与HQL和SQL有何不同?

  • SparkSQL是sparkCore引擎上的一个特殊组件,它支持SQL和HiveQueryLanguage而不改变任何语法。可以连接SQL表和HQL表。

 

 

12. 我们什么时候使用SPARK STREAMING?

  • Spark流是一种实时处理流数据的API。Spark流从不同的资源收集流数据,如web服务器日志文件、社交媒体数据、股票市场数据或Hadoop生态系统,如Flume和Kafka。

 

 

13. Spark流API如何工作?

  • 程序员在配置中设置一个特定的时间,在这个时间内有多少数据进入Spark,该数据作为批处理进行分离。
  • 输入流(DStream)进入spark流, 被框架分解成分批的小块,然后送入spark引擎进行处理。
  • Spark Streaming API将批量数据传递给核心引擎。核心引擎可以以流分批的形式生成最终结果。输出也采用batch的形式。

 

 

14. spark中的变换是什么?

  • Spark在RDDs上提供了两种特殊的操作,称为转换和操作。
  • 转换遵循惰性操作并临时保存数据,直到调用该操作。
  • 每个转换生成/返回新的RDD。
  • 转换示例:Map、flatMap、groupByKey、reduceByKey、filter、co-group、join、sortByKey、Union、distinct、sample都是常见的spark转换。

 

 

15. Action作用是什么? 

  • 操作是RDD的操作,该值返回到spar驱动程序,
  • 该程序启动在集群上执行的作业-lazy 的 trigger。
  • 转换的输出是动作的输入。
  • reduce, collect, take采样,take, first, saveAsTextfile, saveAsSequenceFile, countByKey, foreach是Apache spark中常见的操作。

 

16. 什么是RDD lineage?

  • 是一个重建丢失分区的RDD进程。
  • Spark不会在内存中复制数据,如果数据丢失,Rdd会使用lineage来重建丢失的数据。
  • 每个RDD都记得如何从其他数据集构建RDD。

 

17.Spark中的Map和flatMap是什么?

  • 是处理数据的特定行或行。
  • 在FlatMap中,每个输入项都可以映射到多个输出项(因此函数应该返回一个Seq,而不是单个项)。最常用来返回数组元素。

 

18.什么是广播变量?

  • 广播变量允许程序员在每台机器上保持一个缓存的只读变量,而不是将其副本与任务一起发送。
  • Spark支持两种类型的共享变量,称为广播变量(如Hadoop分布式缓存)和累加器(如Hadoop计数器)。
  • 广播变量存储为数组缓冲区,它向工作节点发送只读值。

 

19. Accumulator是什么?

  • Spark accumulator类似于Hadoop计数器,可以计算事件的数量和作业期间发生的事情。
  • 只有驱动程序可以读取累加器值。