本文为 对刘鹏著《大数据库》一书学习后对课后部分习题的个人理解,欢迎同学们与我讨论。
1. 简述Spark的定义。
Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
2. 对比Spark和Hadoop,分别指出两者之间的区别。
- Spark是一个计算框架;Hadoop的两个核心组件是分布式计算框架MapReduce和分布式文件系统HDFS,Hadoop还包括在其生态系统上的其他系统,如HBase、Hive等。
- Spark是MapReduce的升级方案,其兼容HDFS、Hive等分布式存储层,可融入Hadoop的生态系统,以弥补缺失MapReduce的不足,与Hadoop的MapReduce相比,Spark有以下优势:
-
中间结果不输出到磁盘上
Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高。Hadoop需要将计算的中间结果输出到磁盘中。
-
RDD方式对数据进行分区和处理
Spark使用RDD(弹性分布式数据集)对数据进行分区和处理;Hadoop的MapReduce Schema on Read处理方式会引起较大的处理开销。
RDD提供了一个抽象的数据架构,我们不必担心底层数据的分布式特性,只需将具体的应用逻辑表达为一系列转换处理,不同RDD之间