Spark和Hadoop关系

Spark包括SparkCore、SparkSQL、SparkStreaming、SparkML、GraphX组件

Hadoop包括MapReduce、Hive、HBase、Storm、Kafka、Yarn等

编程模型:SparkCore vs MapReduce

  1. 基于内存 和 基于磁盘,MR耗时都花在shuffle上了
  2. 编程模型死板, 必须填进去M R中, spark一段就ok,mr要写几段
  3. 一个是迭代式运算,MR两个阶段完了就是忘了

搜索引擎:SparkSQLvsHive

Hive是数据仓库,SparkSQL替代的并非Hive,而是Hive中搜索引擎部分

  1. Hive搜索引擎是基于MR shuffle,所以是非常耗时;而Spark是基于内存

流处理:SparkStreaming vs Storm

  1. SparkStreaming并非真正意义的实时流处理,只能说是准实时。因为它使用了缓存(linux内核中LRU链表中提到过,如果每条记录都实时处理,中间设计加锁解锁等处理很耗时),每个一段时间处理一次。
  2. 所以说对对于银行这种要求准实时最好使用storm,对于处理时间段不变化且不要求精确实时的使用sparkStreaming

总之,现在更多是采用Hadoop Spark结合使用的状态,Spark组件只是能替代Hadoop生态中的部分组件。

猜你喜欢

转载自blog.csdn.net/jh_zhai/article/details/80829337