现在Apache Spark已形成一个丰富的生态系统,包括官方的和第三方开发的组件或工具。后面主要给出5个使用广泛的第三方项目。Spark官方构建了一个非常紧凑的生态系统组件,提供各种处理能力。 下面是Spark官方给出的生态系统组件
1、Spark DataFrames:列式存储的分布式数据组织,类似于关系型数据表。
2、Spark SQL:可以执行SQL查询,包括基本的SQL语法和HiveQL语法。读取的数据源包括Hive表、Parquent文件、JSON数据、关系数据库(MySQL等)等。
3、Spark Streaming:Spark Streaming是Spark核心API,易扩展、高吞吐量、流式数据容错。
4、MLlib:Spark的机器学习库,由常规的机器学习算法和基础构成,包括但不限于分类算法、回归算法、聚类算法、协调过滤算法、降维算法等。
5、GraphX:Spark GraphX是一个分布式图处理框架,基于Spark平台提供对图计算和图挖掘的接口,方便用户对分布式图处理的需求。
6、Spark Core API:Spark提供多种语言的API,包括R、SQL、Python、Scala和Java。
除了上述官方的Spark组件外,还有些是在某种情形下必用的项目。以下只是简单的列出这些重量级项目,而不涉及一些性能指标。
Mesos
Mesos是开源的资源统一管理和调度平台。抽象物理机的CPU、内存、存储和计算资源,再由框架自身的调度器决定资源的使用者。Mesos是Master/Slave结构,由Mesos-master,Mesos-slave,Framework和executor四个组件构成。为什么官方选用Mesos,而不是Spark standalone模式或者基于Yarn框架?由Spark开发者所写的书《Learning Spark》:Mesos优于其它两个资源框架是因为Mesos的细粒度调度,这样可让多用户运行Spark shell占有更少的CPU。
Spark Cassandra Connector
Cassandra是一个易扩展、高性能的数据库。 Spark Cassandra Connector现在是Spark和Cassandra表间直接交互的连接器,高度活跃的开源软件。 Spark Cassandra Connector库让你读Cassandra表就如同Spark RDD一样,同样可以写Spark RDD到Cassandra表,并可以在Spark程序中执行CQL语句。
Zepellin
Zepellin是一个集成IPythoon notebook风格的Spark应用(使用和搭建可以参见《Apache Zeppelin使用入门指南:安装》、《Apache Zeppelin使用入门指南:编程》、《Apache Zeppelin使用入门指南:添加外部依赖》)。Zepellin可以基于Spark和Scala,允许用户很简单直接的在他们的博客或者网站发布代码执行的结果。Zepellin也支持其它语言插件,包括Scala和Spark,Python和Spark,SparkSQL,HIve,Markdown和Shell。
Spark Job Server
Spark Job Server提供RESTful接口来提交和管理Spark jobs,jar包和job上下文。Spark Job Server提供Spark任务相关的运行健康信息。
Alluxio
Alluxio是一个分布式内存文件系统(就是大家熟悉的Tachyon项目,最近改名为Alluxio,目前最新的版本是1.0.0。),它在减轻Spark内存压力的同时,也赋予Spark内存快速读写海量数据的能力。Spark应用程序可以不做任何改变即可运行在Alluxio上,并能得到极大的性能优化。Alluxio宣称:“百度使用Alluxio可以提高30倍多数据处理能力”。
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Spark生态系统项目收集】(https://www.iteblog.com/archives/1598.html)
刚才大概看了一下Zepellin,感觉也是可以提交job到集群里计算,那Zepellin和Spark Job Server二者的区别是什么?Zepellin的结果提供可视化?只是这样吗?
希望多介绍一些关于job server的内容。
这里说的就是这个项目吗?
https://github.com/spark-jobserver/spark-jobserver