初识spark
Spark是一个用来实现快速而通用的集群计算的平台。Spark的一个主要特点就是能够在内存中进行计算,因而更快。不过即使必须在磁盘上进行复杂的计算,Spark依然比MapReduce更加高效。Spark的核心是一个由很多计算任务组成的、运行在很多工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。
Spark的各个组件:
Spark Core
Spark Core实现了Spark的基本功能,包括任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core还包括了对弹性分布式数据集的API定义。
Spark SQL
Spark SQL是Spark用来操作结构化数据的程序包。通过Spark SQL我们可以使用SQL或者Apache Hive版本的SQL方言(HQL)来查询数据。
Spark Streaming
Spark Streaming是spark提供的对实时数据进行流式计算的组件。比如生产环境中的网页服务器日志,或是网络服务中用户提交的状态更新组成的消息队列,都是流数据。
MLlib
Spark中还包含一个提供常见的机器学习(ML)功能的程序库,叫MLlib。MLlib提供了很多机器学习的算法,如分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。
GraphX
GraphX是用来操作图(比如社交网络的朋友关系图)的程序库,可以进行并行的图计算。
集群管理器
Spark支持在各种集群管理器上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫做独立调度器。