spark基础
spark可类比于hadoop的MapReduce,性能上有更多优化,一个主要的特点就是spark是基于内存运算的,相比于MapReduce的基于磁盘,减少了IO开销,运算速度快;另一个优化是spark提供基于DAG的运算,防止数据反复落地;同时spark提供多种计算模式,满足不同需求
spark 生态系统
下图展示了spark生态系统的主要模块:
Mesos,hadoop YARN:底层资源调度管理器
HDFS:hadoop基于磁盘分布式文件系统;S3:亚马逊云端存储服务
Tachyon:基于内存的分布式文件系统
SparkCore:Spark应用模块的基础
SparkStreaming:满足流计算需求
StructuredStreaming:支持毫秒级流计算需求
SparkSql:满足交互查询分析需求
SparkGraphX:满足图计算需求
SparkMLlib:提供机器学习算法库
应用场景 | 时间 | 其他框架 | spark框架 |
---|---|---|---|
批数据处理 | 小时 | mapreduce,hive | spark core |
基于历史数据的交互查询 | 分,秒 | Impala,Dremel Drill | spark sql |
基于实时流数据处理 | 秒,毫秒 | Storm,S4 | spark streaming,structured streaming |
基于历史数据的挖掘计算 | - | mahout | spark mlib |
基于图数据的计算 | - | pregel,hama | spark graphx |
spark 部署
spark 部署分为单机模式和集群模式
集群调度模式有三种:
standalone
YARN
mesos