一、为什么引用Spark,Spark是什么?
1、spark是什么,spark是一个实现快速通用的集群计算平台,通用内存并行计算框架,用来构建大型的、低延迟的数据分析应用程序,他扩展了MapReduce,支持更多的计算模式,包括交互式查询和流处理,它的特点,能在内存中进行计算,及时依赖磁盘进行复杂的运算,比MapReduce更加高效,现在大部分公司的项目也都是应该基于Hadoop+Spark的模式
二、Spark的特性
- 高效性:使用最先进的DAG调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性能
- 易用性,支持Java、python、scala的api,还支持多种算法,支持交互式的python和scala的shell,可以方便的使用shell解决集群中的问题,这里接下来我学习spark也是基于python去了解学习
- 通用性:可以用于批处理、交互式查询、实时流处理、机器学习、图计算
- 兼容性:spark可以使用Hadoop的yarn和apache mesos 作为它的资源管理和调度器,并且可以处理所有Hadoop支持的数据,包括hdfs、hbase、cassandra等,spark也可以不依赖于第三方资源管理器和调度器,它实现了standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人可以轻松的部署和使用spark。
三、spark的组成
- sparkcore:将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API
- sparksql:spark sql 是spark来操纵结构化数据的程序包,可以让我使用的sql语句的方式来查询数据,spark支持多种数据源,包括hive、parquet以及json等内容
- sparkstreaming:是spark提供的实时数据进行流式计算的组件
- MLlib:提供常用机器学习算法的实现库
- GraphX:提供分布式图计算框架,能高校进行图计算
- BlinkDB:用户海量数据上进行交互式sql的近似查询引擎
- Tachyon:以内存为中心高容错的分布式文件系统
四、应用场景
- 点击预测和即席查询
- 多次迭代机器学习算法、高计算复杂度的算法等,应用于内容推荐、社区发现等
- 数据实时采集、算法实时训练、系统实时预测全流程实时并行高维算法
- 视频推荐(图计算)、广告业务、主要实现机器学习、图计算等迭代计算