浅谈Spark的特点:与hadoop,storm,flink的区别

本文浅谈一下自己对于spark的理解,并没有什么新东西,大牛可以绕道。刚入行的新手可以看看,尤其面试的时候经常会问到。
首先对Spark下一个定义吧,其实Spark就是一个微批处理的大数据计算框架,跟hadoop中的MapReduce一个性质。而区别在于,1.MapReduce只能做离线处理,也就是批处理,而spark即可以做离线处理也可以做实时处理,但值得一提的是,spark的实时处理实际上是一个微批处理,storm是一个真正的的流式处理,就是数据来一条处理一条,但是storm却在大流量方面表现的不尽人意,但spark就没有这个问题,spark的实质是把流式处理转化为一个个小的批处理,所以又叫微批处理。相对于storm,spark对于大流量更稳定一些;2.MapReduce是基于磁盘计算的,虽然shuffle阶段会有一个基于内存的环形缓冲区,但是无论数据量的多少,最终shuffle阶段的结果还是会写到磁盘上的。而spark是基于内存计算的,这样大大增加了spark的计算能力,但是随着数据量的增多,尤其在没有条件限制下就进行shuffle,往往可能会造成oom异常,这就要考这个时候就是考验程序员功底的时候,即要在内存最大限度使用下的同时避免oom异常,这里不过多叙述;3.MapReduce是进程计算,spark是线程;4.spark具有丰富的算子,多达80多种,而MapReduce只有两种map和reduce,对于复杂的业务需要进行大量的开发才能满足需求。
毫无疑问作为第一代开源的大数据计算框架,MapReduce有着划时代的意义,即便现在也是有一些传统公司在使用着MapReduce,但显然这个是在硬件不够发达时代的产物,而storm虽然做出了不少改进,但是storm对于真正的大流量还是不太稳定,而spark创造性的流批一体,不得不说是目前为止企业很好的选择,而flink虽然现在如火如荼,而且有阿里这样顶尖的公司在去用,这本身就是一个很好的广告牌,但值得注意的flink毕竟太新,其风险不可预知,自己公司如果没有大牛最好不要尝试。
做个总结吧,目前来说个人认为对于一般中小型企业,spark在大数据计算框架里是一个很好的选择。

 


版权声明:本文为CSDN博主「Bruce_1205」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44570919/article/details/91354818

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值