我是靠谱客的博主 高贵盼望,最近开发中收集的这篇文章主要介绍Spark是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

      Spark是个通用的集群计算框架,通过将大量数据集计算任务分配到多台计算机上,提供高效内存计算。

       Spark拥有多种语言的函数式编程API,提供了除map和reduce之外更多的运算符,这些操作是通过一个称作弹性分布式数据集(resilient distributed datasets, RDDs)的分布式数据框架进行的。RDD 是指能横跨集群所有节点进行并行计算的分区元素集合。

       RDD本质上是种编程抽象,代表可以跨机器进行分割的只读对象集合。RDD可以从一个继承结构(lineage)重建(因此可以容错),通过并行操作访问,可以读写HDFS或S3这样的分布式存储,更重要的是,可以缓存到worker节点的内存中进行立即重用。由于RDD可以被缓存在内存中,Spark对迭代应用特别有效,因为这些应用中,数据是在整个算法运算过程中都可以被重用。

      Spark主要抽象是RDD(弹性分布式数据集),第二个抽象是共享变量

      Spark库本身包含很多应用元素,其核心组件如下所示:

  • Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。
  • Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。对熟悉Hive和HiveQL的人,Spark可以拿来就用。
  • Spark Streaming:允许对实时数据流进行处理和控制。很多实时数据库(如Apache Store)可以处理实时数据。Spark Streaming允许程序能够像普通RDD一样处理实时数据。
  • MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。之前可选的大数据机器学习库Mahout,将会转到Spark,并在未来实现。
  • GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作。

总结:

       Spark核心组件满足了很多大数据需求,也满足了很多数据科学任务的算法和计算上的需要;

       Spark非常快,可以通过类似Python REPL的命令行提示符交互式访问;

       Spark快速流行起来;

       Spark也提供了使用Scala、Java和Python编写的API。

       Spark 编程的核心概念:通过一个驱动器程序创建一个 SparkContext 和一系列 RDD,然后进行并行操作。

最后

以上就是高贵盼望为你收集整理的Spark是什么?的全部内容,希望文章能够帮你解决Spark是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部