欢迎回家
我们一直在改变

Spark 生态圈

Hadoop将Spark作为自己生态圈的一部分,但Spark完全可以脱离Hadoop平台,不单依赖于HDFS、Yarn,例如它可以使用Standalone、Mesos进行集群资源管理,它的包容性使得Spark拥有众多的源码贡献者和使用者,其生态系统也日益繁荣。Spark官方组件如图所示。

Spark SQL And DataFrame

Spark SQL用于对结构化数据进行处理,它提供了DataFrame的抽象,作为分布式平台数据查询引擎,可以在此组件上构建大数据仓库。DataFrame是一个分布式数据集,在概念上类似于传统数据库的表结构,数据被组织成命名的列,DataFrame的数据源可以是结构化的数据文件,也可以是Hive中的表或外部数据库,也还可以以是现有的RDD。

Spark Streaming

Spark Streaming用于进行实时流数据的处理,它具有高扩展、高吞吐率及容错机制,数据来源可以是 Kafka, Flume, Twitter, ZeroMQ, Kinesis或TCP,其操作依赖于discretized stream(DStream),Dstream可以看作是多个有序的RDD组成,因此它也只通过map, reduce, join and window等操作便可完成实时数据处理,另外一个非常重要的点便是,Spark Streaming可以与Spark MLlib、Graphx等结合起来使用,功能十分强大,似乎无所不能。

Spark Machine Learning

Spark集成了MLLib库,其分布式数据结构也是基于RDD的,与其它组件能够互通,极大地降低了机器学习的门槛,特别是分布式环境下的机器学习。目前Spark MLlib支持下列几种机器学习算法:

(1 ) classification(分类)与 regression(回归)
目前实现的算法主要有:linear models (SVMs, logistic regression, linear regression)、naive Bayes(朴素贝叶斯)、decision trees(决策树)、ensembles of trees (Random Forests and Gradient-Boosted Trees)(组合模型树)、isotonic regression(保序回归)

(2) clustering(聚类)
目前实现的算法有:k-means、Gaussian mixture、power iteration clustering (PIC)、latent Dirichlet allocation (LDA)、streaming k-means

(3) collaborative filtering(协同过滤)
目前实现的算法只有:alternating least squares (ALS)

(4) dimensionality reduction(特征降维)
singular value decomposition (奇异值分解,SVD)
principal component analysis (主成分分析,PCA)

除上述机器学习算法之外,还包括一些统计相关算法、特征提取及数值计算等算法。Spark 从1.2版本之后,机器学习库作了比较大的发动,Spark机器学习分为两个包,分别是mllib和ml,ML把整体机器学习过程抽象成Pipeline(流水线),避免机器学习工程师在训练模型之前花费大量时间在特征抽取、转换等准备工作上。

Spark GraphX

Graphx是Spark专门用来进行分布式图计算,Graph的抽象也是通过扩展Spark RDD实现,提供subgraph, joinVertices及aggregateMessages等基础的图操作。

SparkR

R语言在数据分析领域内应用十分广泛,但以前只能在单机环境上使用,Spark R的出现使得R摆脱单机运行的命运,将大量的数据工程师可以以非常小的成本进行分布式环境下的数据分析。 Spark R提供了RDD的API,R语言工程师可以通过R Shell进行任何的提交。

目前其它比较著名的Spark 生态圈产品包括(参见http://spark-packages.org/):
1 Astro
华为开源的Spark SQL on HBase package。Spark SQL on HBase package项目又名Astro,端到端整合了Spark,Spark SQL和HBase的能力,有助于推动帮助Spark进入NoSQL的广泛客户群,并提供强大的在线查询和分析以及在垂直企业大规模数据处理能力。见http://www.ctiforum.com/news/guonei/458028.html

2 Apache Zeppelin
开源的基于Spark的Web交互式数据分析平台,它具有如下特点:
(1)自动流入SparkContext and SQLContext
(2) 运行时加载jar包依赖
(3) 停止job或动态显示job进度
最主要的功能包括: Data Ingestion、Data Discovery、Data Analytics、Data Visualization & Collaboration
目前Zeppelin还只是孵化项目,但我相信未来它一定有广阔的前景,参见http://zeppelin.incubator.apache.org/

3 Apache Pig on Apache Spark(Spork)

原文链接:https://blog.csdn.net/lovehuangjiaju/article/details/48573413

赞(0)
未经允许不得转载:91coding » Spark 生态圈
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

91CODING 小白轻松上手,大牛稳健进步

关于我们免责声明