官方直达电梯

Spark一种基于内存通用实时大数据计算框架(作为MapReduce的另一个更优秀的可选的方案)

  • 通用:Spark Core 用于离线计算,Spark SQL 用于交互式查询,Spark Streaming 用于实时流式计算,Spark Mlib 用于机器学习,Spark GraphX 用于图计算
  • 实时:Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk.

一、Spark和Storm的区别

Storm的计算模型(实时)

  • Storm是针对每条数据的流式实时计算框架,由于每条数据过来就直接处理,每条数据都会带来大量的资源消耗(传输,通信,校验等)吞吐量不高
  • storm可以动态调整并行度
  • Storm保证了更高的实时性,毫秒级延迟

Spark Stream计算模型(准实时)

  • 通过设置时间间隔 batch interval 一个时间间隔内的数据作为一个Batch收集起来给Spark Streaming Application处理(少了很多传输,校对开销),保证了高吞吐量
  • 秒级延迟
  • 结合Spark生态圈可以发挥很大的威力

二、Spark Streaming和MapReduce的对比

Shuffle以及MapReduce的计算模型决定了MapReduce只适合对速度要求不敏感的离线批处理任务

  • Spark的多进程任务可能在同一个物理机器的内存上完成(Spark shuffle也会使用磁盘)
  • MapReduce死板的模型必须基于磁盘和大量的网络传输
  • MapReduce的程度编写复杂,Spark更容易上手,支持(Scale JAVA[8支持函数式编程] Python)
  • Spark 在缺少调优时,会出现OOM(Out Of Memory)的问题,导致程序无法执行,而MapReduce就算是慢也能执行

三、Spark SQL对比Hive

  • Spark SQL实际上不能完全替代Hive,只是替代了Hive中的查询引擎,针对Hive数据仓库中的表进行SQL查询
  • 由于Hive查询底层基于MapReduce决定了Hive的查询慢
  • Hive中的一部分高级特性在Spark SQL 中未得到支持
  • Spark SQL除了Hive还支持其他数据源(json parquet jdbc等),同时支持直接针对HDFS执行SQL查询

最新文章

  1. C# 提交网页请求时出现如下错误: System.Net.WebException: 操作超时
  2. RabbitMQ总结概念
  3. iOS之属性修饰符 retain、strong和copy区别测试
  4. php返回json数据中文显示的问题
  5. 【Unity3D自学记录】判断物体是否在镜头内
  6. 如何更新Linux源
  7. 【转】RTSP实例解析
  8. spring加载jar包中多个配置文件
  9. iOS视图控制器之间delegate传值教程
  10. Ajax页面的加载数据与删除
  11. Libgdx 1.6.1发布,跨平台游戏开发框架
  12. APP多开教程
  13. CSS斜切角
  14. Hibernate 再接触 性能优化
  15. Emergency(山东省第一届ACM程序设计真题+Floyd算法变型)
  16. 在Java Web项目中,不用ActionContext类来获得tomcat部署项目的绝对路径
  17. Linux 挂载
  18. H5页面的滚动条在windows浏览器下始终看到(灰色的不可用的)
  19. 【Asp.net MVC】AJAXHelper 和jQueryAjax
  20. 分分钟钟学会Python - 数据类型(set)

热门文章

  1. Git的认识与学习
  2. GraphQL 到底怎么用?看看这个例子就知道了
  3. 深搜(DFS),回溯,Fire Net
  4. AQS(一) 对CLH队列的增强
  5. 11.多线程&&并发
  6. PL/SQL 用户自定义子类型
  7. oracle行长度大小和页行数修改
  8. vim 输入特殊字符
  9. C++创建学生类练习
  10. linux下mysql主从复制,实现数据库同步