第一章:Spark数据分析导论

来源:互联网 发布:js focus有什么 编辑:程序博客网 时间:2024/05/19 03:44

1.Spark是什么?

Spark是一个快速而通用的集群计算平台

快速:
- spark扩展了MapReduce模型,更高效地支持更多计算模式,包括交互式查询和流处理。
- Spark能在内存中进行计算,即使是必须在磁盘上进行计算,spark仍然比MapReduce高效。

通用:
- 适用于多种分布式计算场景,包括批处理、迭代算法、交互式查询、流处理。
- 接口丰富,支持Python、java、Scala、SQL,支持的数据源也很丰富。

2.一个大一统的软件栈

这里写图片描述

  • Spark core:任务调度、内存管理、错误恢复、与存储系统交互,包含RDD(弹性分布式数据集,是Spark主要的编程抽象,表示分布在多个节点上可以并行操作的元素集合)的API。
  • Spark SQL:通过Spark SQL可以使用SQL或者HQL查询数据,前身是Shark。支持多种数据源(Hive表,JSOn,Parquet等)。
  • Spark streaming:对实时数据进行流式计算的组件。
  • MLlib:机器学习库。包括分类、回归、聚类、协同过滤,模型评估,数据导入等
  • GraphX:操作图的库。
  • 集群管理器:Hadoop Yarn、Apache Mesos、独立调度器(Spark自带的一个简易调度器)

3.Spark的用户和用途

  • 用户:数据科学家、工程师
  • 用途:数据科学任务、数据处理应用

4.Spark简史

  • 2009年在加州大学伯克利分校诞生,为了改进MapReduce在迭代计算和交互式计算任务下效率低下的问题,Spark一开始就是为了交互式查询和迭代算法设计的,同时支持内存式存储和高效的容错机制。
  • 如今已是apache的顶级项目。

5.Spark的存储层次

  • Spark可以将任何Hadoop HDFS上的文件读取为分布式数据集
  • Hadoop并非Spark的必要条件,Spark支持任何实现了Hadoop接口的存储系统,比如本地文件,亚马逊S3,Cassandra,Hive,Hbase等。