Spark
Spark是热门的大数据处理技术
Spark支持采用Scala、Java、Python和R语言进行编程,本课采用Python语言编写Spark应用程序
Spark简介
- Spark是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序
Spark特点
- 运行速度快:使用DAG执行引擎以支持循环数据与内存计算
- 容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
- 通用性强:Spark提供了完整而强大的技术线,包括SQL查询、流式计算、机器学习和图算法组件
- 运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源
组件:
Hadoop与Spark的对比
Hadoop缺点:
- 表达能力有限
- 磁盘IO开销大
- 延迟高
- 任务之间的衔接涉及IO开销
- 在前一个任务执行完成前,其他任务无法开始,难以胜任复杂多阶段的计算任务
Spark优点:
- Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活
- Spark提供了内存计算,可将中间结果放到内存中,对于迭代计算效率更高
- Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制
Spark只有计算没有存储
性能对比:Flink>Spark>Hadoop(MR)
大数据概念
大数据不仅仅是数据的“大量化”,而是包含“快速化”,“多样化”,和“价值化”等等多重属性
大数据是由结构化数据和非结构化数据组成的
- 10%的结构化数据存储在数据库中
- 90%的非结构化数据与人类信息密切相关
在思维方面,大数据颠覆了传统的思维方式
- 全样而非抽样
- 效率而非精确
- 相关而非因果
大数据两大关键技术
- 分布式存储
- 分布式处理