Spark与Hadoop关系

来源:互联网 发布:网络舆情工作通知 编辑:程序博客网 时间:2024/05/17 04:45

Spark是一个计算框架

Hadoop是包含计算框架MapReducehe分布式文件系统HDFS。

 

Spark是MapReduce的替代方案,而且兼容HDFS、Hive等分布式存储系统,可融入Hadoop生态。

 

Spark与Hadoop MapReduce优势如下

1 中间结果输出

   MapReduce的计算引擎将中间结果存储在磁盘上,进行存储和容错。

   Spark将执行模型抽象为有向无环图执行计划(DAG),这可以将多个Stage的任务串联或者并行执行,而无须将Stage中间结果输出到HDFS中。

 

2 数据格式和内存布局

  MapReduce  Schema on Read处理方式会引起较大的处理开销。Spark抽象出分布式内存存储结构弹性分布式数据集RDD,进行数据的存储。RDD能支持粗粒度写操作,但是对于读取操作,RDD可以精确到每条记录,这使得RDD可以用来作分布式索引。Spark的特性是能控制数据节点上的分区,用户可以自定义分区策略,如Hash分区等。Shark 和Spark SQL在Spark的基础之上实现了列存储和列存储压缩。

 

3 执行策略

   MapReduce在数据Shuffle之前花费了大量的时间来排序,Spark则可以减轻上述问题带来的开销。因为Spark任务在Shuffle中不是所有情景都需要排序,所以支持基于Hash的分布式聚合,调度中采用更为通用的任务执行计划图(DAG),每一轮次的输出结果在内存缓存。

 

4 任务调度开销

    传统的MapReduce系统,如Hadoop,是为了运行长达数小时的批量作业而设计的,在某些极端情况下,提交一个任务的延迟非常高。

   Spark采用了事件驱动的类库AKKA来启动任务,通过线程池复用线程来避免进程或线程启动和切换开销。

0 0
原创粉丝点击