Speed(快)
Apache Spark achieves high performance for both batch and streaming data,
实现了在批处理 和 流处理 的高速数据处理,
using a state-of-the-art DAG scheduler, a query optimizer, and a physical execution engine.
使用了先进的 DAG 调度,查询优化器 和 物理执行引擎
Ease of Use(易用)
Write applications quickly in Java, Scala, Python, R, and SQL.
可以使用 Java,Scala,Python,R,SQL 快速构建应用
Spark offers over 80 high-level operators that make it easy to build parallel apps.
Spark 提供超过80个高级的操作来轻松的构建分布式应用
And you can use it interactively from the Scala, Python, R, and SQL shells.
并且你可以使用 Scala, Python, R, 和 SQL shells 来进行混合编程
Generality(通用)
Combine SQL, streaming, and complex analytics.
综合了 SQL处理,流处理 和 复杂的数据分析
Spark powers a stack of libraries including SQL and DataFrames,
Spark 提供了一些列的库,包含:SQL and DataFrames(进行sql数据分析)
MLlib for machine learning,
MLlib 进行机器学习
GraphX,
图计算库
and Spark Streaming.
和 Spark Streaming进行流式计算,
You can combine these libraries seamlessly in the same application.
你可以在同一个应用中无缝的组合使用这些库
Runs Everywhere(运行在任何地方)
Spark runs on Hadoop, Apache Mesos, Kubernetes, standalone, or in the cloud.
Spark 可以运行在 Hadoop, Apache Mesos, Kubernetes, standalone, 甚至 云端
It can access diverse data sources.
并且其支持访问多种数据源
A list of partitions
RDD 是有一个 分区列表的,
也就是说数据在RDD里面不是一个整体,
而是一个个的分区的。
A function for computing each split
这里 function 我更愿意理解成 算子,split 大致等于 分区,所以:
一个算子的计算是作用在每一个的 分区的,
所以分区数越多,那么计算的并行度就越高,
结合第一条,那么提升RDD的并行度,只需要提升其分区数
A list of dependencies on other RDDs
这个话是真不太好翻译,但是大概意思就是,RDD 之间是相互依赖的,
RDD除了从源数据生成,就只剩下从RDD生成RDD这个方法了。
Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
可选的,分区器是针对 K-V 格式的 RDD的。
在发送 Shuffle 的时候,分区器决定了每条数据的去向。
Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
可选的,一个首选的位置的列表,可以提供给每个分区的计算的位置。
也就是我们常说的数据本地化,计算向数据移动。