前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark生态系统的顶级项目

Spark生态系统的顶级项目

作者头像
哒呵呵
发布2018-08-06 17:19:05
1.2K0
发布2018-08-06 17:19:05
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记

Spark开发了一个丰富的生态系统,包括le 官方和第三方工具。 我们来看看5个以不同方式加强了Spark的第三方项目。

By Matthew Mayo, KDnuggets.

Apache Spark现在是最大的开源数据处理项目,有着来自200个组织的超过750个贡献者。

Spark由在AMP Berabley的AMPLab开发,现在是一个顶级的Apache项目,由Spark的创建者创办的Databricks监管。这两个组织携手合作,推动Spark的发展。 Apache Spark和Databricks创始人兼CTO副总裁Matei Zaharia这么描述这种发展关系:

在Databricks,我们正在努力使Spark通过我们对Spark代码库和支持文档的加强更容易使用和运行速度超过以往任何时候。我们在Spark上的所有工作都是开源的,并且直接进入Apache。

这有时会被视为是与Hadoop的竞争(但并不一定是这样),Spark已经设法从Hadoop的成长的痛苦中吸取经验教训,因为Hadoop已经十几岁了。因此,Spark已经建立了一个紧密的官方工具生态系统,它具有很好的处理能力。

Spark的官方生态系统包括以下主要组件(这是从Spark官方文档中获取的描述):

  • Spark DataFrames - a distributed collection of data organized into named columns, similar to a relational table
  • Spark SQL - execute SQL queries written using either a basic SQL syntax or HiveQL, and read data from an existing Hive installation
  • Spark Streaming - an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams
  • MLlib - Spark's machine learning library, consisting of common learning algorithms and utilities, including classification, regression, clustering, collaborative filtering, dimensionality reduction, and more
  • GraphX - a new component in Spark for graphs and graph-parallel computation
  • Spark Core API - provides APIs for a variety of commonly-used languages: R, SQL, Python, Scala, Java

然而,会有一些额外的项目不是官方生态系统的一部分,而且在某些情况下已经(或正在成为)自己的能力或必须添加的创新。这只是一个项目列表,其中包含了已经观察到的它们在某些方面的有用性,或已被注意到变得流行。以下是被认为对Spark有用的5个选定项目。

1. Mesos

Apache Mesos是一个来自UC Berkeley的AMPLab的开源集群管理器。从其网站:

Apache Mesos将CPU,内存,存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错性和弹性分布式系统能够轻松构建和高效运行。

Mesos在集群的节点上运行,并为应用程序提供API,用于管理和调度资源。因为Mesos是Spark可以操作的集群配置之一。Spark的官方文档甚至包括Mesos作为集群管理器的信息。

为什么要使用Mesos管理Spark standalone或YARN?这是来自学习Spark,由Spark开发人员Databricks(包括一些联合创始人)的描述:

Mesos对于YARN和standalone的一个优点是它的细粒度共享选项,它允许交互式应用程序(如Spark Shell)缩减命令之间的CPU分配。这使得它在多个用户运行交互式shell的环境中很有吸引力。

2. Spark Cassandra Connector

Cassandra是高度可扩展的高性能数据库管理软件。Spark Cassandra Connector项目是一个正在积极开发的开源软件,它允许Spark与Cassandra的表交互。这是它的Github的描述:此库允许您作为Spark RDDs公开Cassandra表,将Spark RDDs写入Cassandra表,并在Spark中执行任意CQL查询。Spark Cassandra连接器负责将Spark与Cassandra连接的配置。这是以前可能是通过自己的一些辛苦工作,或使用Spark Hadoop API。

3. Zepellin

Zepellin是一个有趣的Spark项目,目前是Apache孵化器的成员。Zepellin正在整合的IPython(Jupyter)风格的笔记本带到Spark生态系统。虽然现有存在替代方案,但它们是(很好的)事后解决方案。 Zepellin是从基础架构建立与Spark,Scala和相关技术的联系,而不依赖于Jupyter。值得注意的是,它允许直接和容易地将代码执行结果作为嵌入式iframe发布在托管博客或网站中。这是来源于项目网站:基于Web的笔记本电脑,支持交互式数据分析。您可以使用SQL,Scala等创建漂亮的数据驱动,交互式和协作文档。

Zeppelin解释器允许额外的语言插件。 当前支持的语言包括Scala(带Spark),Python(带Spark),Spark SQL,Hive,Markdown和Shell。

4. Spark Job Server

Spark Job Server是一个简洁和准确的标题。 这是Github的描述:spark-jobserver提供了一个RESTful接口,用于提交和管理ApacheSpark作业,jar和作业内容。这个仓库包含完整的Spark Job Server项目,包括单元测试和部署脚本。它最初开始于Ooyala,但现在是主要开发仓库。为什么使用Spark Job Server? RESTful接口允许从任何语言或环境提交作业,作业内容由Job Server处理。

5. Alluxio (formerly Tachyon)

Alluxio将自己定义为“具有内存速度的虚拟分布式存储系统”。 Alluxio以前称为Tachyon,位于计算框架(如Apache Spark)和各种类型的存储系统(包括Amazon S3,HDFS,Ceph等)之间。 Spark作业可以在Alluxio上运行而不进行任何更改,Alluxio可以显着提高性能。 Alluxio声称“百度使用Alluxio将数据分析性能提高了30倍”。这是来源于他们的网站:Alluxio是一个开源的以内存为中心的分布式存储系统,能够以内存速度在集群任务之间进行可靠的数据共享,可能是在不同的计算框架(如Apache Spark,Apache MapReduce和Apache Flink)中编写。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档