首页 > 大数据 > Spark > 好程序员大数据培训分享Spark技术总结
好程序员 大数据 培训分享 Spark 技术总结 , Spark 是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小 ( 大数据库架构中这是是否考虑使用 Spark 的重要因素 ) 。
1 、 Spark 的核心是什么 ?
RDD 是 Spark 的基本抽象 , 是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。 RDD 也是 Spark 非常核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的 RDD 实现。
RDD 必须是可序列化的。 RDD 可以 cache 到内存中,每次对 RDD 数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了 MapReduce 大量的磁盘 IO 操作。这对于迭代运算比较常见的机器学习算法 , 交互式数据挖掘来说,效率提升比较大。
2 、 Spark 的适用场景有哪些 ?
由于RDD 的特性, Spark 不适用那种异步细粒度更新状态的应用,例如 web 服务的存储或者是增量的 web 爬虫和索引。就是对于那种增量修改的应用模型不适合。总的来说 Spark 的适用面比较广泛且比较通用。
3 、 Spark 支持的编程语言有哪几种 ?
Spark 通过与编程语言集成的方式暴露 RDD 的操作,类似于 DryadLINQ 和 FlumeJava ,每个数据集都表示为 RDD 对象,对数据集的操作就表示成对 RDD 对象的操作。 Spark 主要支持的编程语言是 Scala 、 java 、 python 。
Scala
Spark 使用 Scala 开发,默认使用 Scala 作为编程语言。编写 Spark 程序比编写 Hadoop MapReduce 程序要简单的多, SparK 提供了 Spark-Shell ,可以在 Spark-Shell 测试程序。
Java
Spark 支持 Java 编程,但对于使用 Java 就没有了 Spark-Shell 这样方便的工具,其它与 Scala 编程是一样的,因为都是 JVM 上的语言, Scala 与 Java 可以互操作, Java 编程接口其实就是对 Scala 的封装。
Python
现在Spark 也提供了 Python 编程接口, Spark 使用 py4j 来实现 python 与 java 的互操作,从而实现使用 python 编写 Spark 程序。 Spark 也同样提供了 pyspark ,一个 Spark 的 python shell ,可以以交互式的方式使用 Python 编写 Spark 程序。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913864/viewspace-2699092/,如需转载,请注明出处,否则将追究法律责任。