分布式系统详解--框架(Spark-简介)
一、定义
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎,Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。
二、优势特点
Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
2.1 速度--以更快的速度运行工作负载
Apache Spark使用最先进的DAG调度程序,查询优化器和物理执行引擎,实现批处理和流数据的高性能。
2.2 便于使用--Java、Scala、Python、R、SQL
Spark提供80多个高级操作员,可以轻松构建并行应用程序。您可以 从Scala,Python,R和SQL shell中以交互方式使用它。
2.3 集合sql、流媒体和复杂的分析
Spark支持一堆库,包括SQL和DataFrames,用于机器学习的MLlib,GraphX和Spark Streaming。 您可以在同一个应用程序中无缝地组合这些库。
2.4 随处运行
Spark运行在Hadoop,Apache Mesos,Kubernetes,独立或云端。 它可以访问各种数据源。
您可以使用其独立群集模式,在EC2上,在Hadoop YARN上,在Mesos上或在Kubernetes上运行Spark。 访问HDFS,Alluxio,Apache Cassandra,Apache HBase,Apache Hive和数百个其他数据源中的数据。
三、Spark的组件
3.1 Spark Core:
包含Spark 的基本功能,包含任务调度、内存管理、容错机制。
内部定义了RDDs(弹性分布式数据集)。
提供了很多APIs来创建和操作这些RDDs。
应用场景,为其他组件提供底层的服务。
3.2 Spark SQL:
这是Spark 处理结构化数据的库,如同Hive SQL,Mysql一般。
应用场景,企业中用来做报表统计。
3.3 Spark Streaming
实时数据流处理组件,类似于Storm。
它提供了API来操作实时流数据。
应用场景,企业中用来从Kafka接收数据做实时统计。
3.4 Mlib:
一个包含通用机器学习的功能的包,Machine learning lib。
包含分类、聚类、回归等,还包括模型评估,和数据导入。
Mlib提供的所有方法,均支持集群中的横向扩展。
应用场景:机器学习
3.5 Graphx:
处理图的库(例如:社交网络图),并进行图的并行计算。
像Spark Streaming,Spark SQL一样,它继承了RDD API。
它提供了各种图的操作,和常用的图算法,例如PangeRank算法。
应用场景:图计算。
3.6 Cluster Managers:
集群管理,Spark 自带一个集群管理是单独调度器。
常见的集群管理包括Hadoop Yarn,Apache Mesos。
欢迎订阅公众号(JAVA和人工智能)
获取更过免费书籍资源视频资料
精品文章推荐:
2,分布式系统详解 - 框架(zookeeper-简介和集群搭建)
3,分布式系统详解 - 框架(Hadoop的HDFS的HA搭建及测试)