什么是Spark
官网介绍
Apache Spark™是用于大规模数据处理的统一分析引擎。
Spark诞生于U.C Berkeley的AMPLab , 它是这个世界上最重要的分布式大数据框架之一。它扩展了广泛使用的MapReduce计算模型。高效地支撑更多计算模型 , 包括交互式查询和流处理。Spark的一个主要特点是能够在内存中进行计算 , 即使依赖磁盘进行复杂的运算 , Spark依然比MapReduce更加高效。
Spark的主要组件包括 , SparkSQL、SparkStreaming、MLlib、GraphX、BlinkDB、Tachyon 。
Spark的优势
1.快速 - 以100倍的速度运行计算任务
2.易用 - 用Java、Scala、Python、R、SQL快速构建应用
3.通用 - 将SQL、流式处理和复杂分析相结合。
4.跨平台 - 可以运行在Hadoop、Apache Meos、Kubernets、Standalone或云中 。
Spark的特点
1.提供Cache机制来支持反复迭代计算或者多次数据共享 , 减少数据IO开销
2.提供一套支持DAG图的分布式并行计算的编程框架 , 减少多次计算之间中间结果写入HDFS的开销
3.使用多线程模型减少Task启动开销 , shuffle过程中避免不必要的sort操作并减少磁盘IO(MR的shuffle过程需要sort)
Spark的应用
1.腾讯大数据精准推荐借助Spark快速迭代的优势,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上。
2.优酷土豆将Spark应用于视频推荐(图计算)、广告业务,主要实现机器学习、图计算等迭代计算。