精选30+云产品,助力企业轻松上云!>>>
写这篇文章的时候,自己也编写过一段时间的 Spark 流式程序了,但是感觉还是零零散散的,不够系统。这么优秀的一个框架,如果只了解其中一点还是很难满足的,所以,我们第二次相遇了,这一次,好好写下去。
本文主要包含:
Spark 简介
Spark 的优势
Spark 内部生态
Spark 基础入门书籍推荐
那么,从官网开始。
打开 Spark 官网,这句特别醒目:Apache Spark™ is a unified analytics engine for large-scale data processing. 直译过来就是 Apache Spark 是一个统一的分析引擎,用于大规模数据处理。它最初于 2009 年在加州大学伯克利分校开发。
Apache Spark是一个用于分布式计算的框架,它从一开始就为低延迟任务和内存数据存储而优化。它是为数不多的并行计算框架之一,它结合了速度、可扩展性、内存处理和容错性,易于编程和灵活、有表现力和强大的API设计。
往下看,是 Spark 几个最明显的优势
1.Speed
如上图,测试逻辑回归计算,Spark 的计算速度大约是 Hadoop 的 100 倍。(画外音:并不是所有场景 Spark 的计算速度是 Hadoop 的 100 倍,如果从磁盘中读数据,速度10倍左右)
2.Ease of Use
Spark 本身提供了超过 80 种高级操作算子,我们可以轻松使用 Java/Python/R/SQL编写并行处理程序。在交互窗口中也可以使用,比如 SQL shell 、Python shell、Scala shell 中。
下面的例子是 Spark 的 Python DataFrame API 使自动模式推断读取 json 文件。
df = spark.read.json("logs.json")
df.where("age > 21")
.select("name.first").show()
3.Generality
Spark 提供了一些列的类库,包括 SQL、DataFrame、MLlib 、Graphx以及 Spark Streaming 。我们可以在一个应用程序组合使用这些类库,他们是无缝链接的。
4.Run Everywhere
我们写的 Spark 程序最终都是需要运行的,可以运行 Spark 的地方很多,比如 Hadopp(Yarn)、Mesos、k8s、standalone 或者各种云上。另外,Spark 也可以访问很多数据源,比如 HDFS、Hbase、Hive、Cassandra等等。这些都是内部支持的,不需要额外的引用第三方利库或者自己开发。
Spark 内部生态Spark 的内部生态很丰富,下面给大家一一简单介绍。
Spark SQL
许多数据科学家、分析师和一般商业智能用户依赖交互式SQL查询来探索数据。Spark-SQL是一个用于结构化数据处理的Spark模块。它提供了一个称为DataFrames的编程抽象,还可以充当分布式SQL查询引擎。它使未修改的Hadoop Hive 查询在现有的部署和数据上能更快地运行到100倍。它还提供了与Spark生态系统其他部分的强大集成(例如,将SQL查询处理与机器学习集成)。
MLlib
机器学习很快成为挖掘大数据以获得可操作的洞察力的关键部分。MLlib建立在Spark之上,是一个可扩展的机器学习库,它提供了高质量的算法(例如,多次迭代以提高精度)和极高的速度(比MapReduce快100倍)。该库在Java、Scala和Python中可用,作为Spark应用程序的一部分,因此您可以将其包含在完整的工作流中。
GraphX
GraphX是一个建立在Spark之上的图形计算引擎,它使用户能够交互地构建、转换和推理大规模的图形结构数据。它配有一个通用算法库。
Spark Streaming
许多应用程序不仅需要处理和分析批处理数据,而且还需要实时处理和分析新数据流。Spark Streaming运行在Spark之上,支持跨流式数据和历史数据的强大交互和分析应用程序,同时继承Spark的易用性和容错特性。它很容易与各种流行的数据源集成,包括HDFS、Flume、Kafka和Twitter。
Spark Core
Spark Core 是 Spark 平台的底层通用执行引擎,所有其他功能都建立在它之上。它提供了内存计算能力以提供速度,提供了支持多种应用程序的通用执行模型,并提供了Java、Scala和 Python API 以便于开发。
出版的书籍(英文)
推荐《Spark in action》,如果是零基础入门的话,还是建议选一本中文的书籍,我比较推荐这本《图解Spark:核心技术与案例实战》。基本知识体系梳理好了之后,再把上面那本英文的数看一下,查漏补缺,带着问题求证。最后有时间,过一下官网的文章和博客。
今天先写到这里,后面会慢慢梳理一个完整的知识体系,欢迎关注并与我交流。
(完)
本文分享自微信公众号 - 大数据每日哔哔(bb-bigdata)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。