鸿 网 互 联 www.68idc.cn

大数据流式处理的利与弊

来源:互联网 作者:佚名 时间:2016-05-15 06:53
Laxcus大数据管理系统2.0版本推出有两个多月了,最近做了一次使用情况调查,发现最受欢迎的竟是流式处理。这大大出乎我们推出新版本时的预料。因为当时新版本推出时,流式处理只是做为磁盘数据处理的一项辅助功能而附带提供的,而且最初设计流式处理时,技术

  Laxcus大数据管理系统2.0版本推出有两个多月了,最近做了一次使用情况调查,发现最受欢迎的竟是流式处理。这大大出乎我们推出新版本时的预料。因为当时新版本推出时,流式处理只是做为磁盘数据处理的一项辅助功能而附带提供的,而且最初设计流式处理时,技术上也并没有花太多心思,因为它很容易实现,只是改变一下数据处理流经的路线而已。不过现在想想,再看看当下SPARK火热的情况,流式处理大热也就不奇怪了,毕竟更多更快更强的大数据处理效果是大家共同追求的目标。举一个例子,我们一个合作伙伴,原来做一次大数据计算,大概需要一两个小时的时间,现在改用了流式处理,同样的数据量,只用几分钟就搞掂了,计算效率一下子提升了几十倍。这样的数据处理,不招人喜欢才怪!
  不过做为大数据技术开发者和运营管理者,对于流式处理,我们却要冷静对待,下面就从技术和运维的角度,来说一说我自己的看法。
  流式处理的好处这里就不说了,大家都已经看得到:快!仅凭这一点,就足以让大批没有耐心的用户心满意足。
  下面主要说一说“弊”的方面。
  大家应该都知道,流式处理是以内存取代硬盘来实现快速处理效果的。不管现在任何流式处理产品,包括SPARK、STORM、SAMZA,它们怎么说自己的产品与别人有什么不同,这个根本的相同点是回避不了的,这是流式处理所以能够快的根本原因。
  在一台计算机里,以存储容量比较,内存是少数,硬盘是多数,这样的例子,我们看看自己用的PC就知道。一台PC,现在硬盘容量最少也是1TB了,但是内存呢,不过几个GB的数量,两者相差近千倍。这种情况在云服务器上也一样,每台服务器,可以分配给用户的空间基本都是足够的,即使偶尔不足,也可以通过负载均衡的办法,分散到其它机器上来弥补。但是内存就不同了,内存在大多数的时候是不足的,而且就是在这种不足的情况下,还要满足多个用户的数据请求,所以每个用户实际分到的内存就更少。而流式处理加入进来后,实际的效果就是把原来分配给多个用户的内存资源,全部归给一个用户来使用,其他需要内存的用户,因为没有内存可用,将被迫进入等待状态,直到这个用户完成后,才能继续使用。所以,从业务公平和数据公平角度来说,流式处理的这种做法是不合理的,属于多吃多占。这有点象社会上某些现象,为了满足某些个体的私利,而牺牲掉公众的利益。呵呵。当然,如果是自己搭建集群,只为自己业务服务的,那就另说。
  还有一点是流式处理比较尴尬的,这在所有流式处理中都存在,但是我看过很多介绍流式处理的文章,不知他们是有意回避还是其它什么原因,被提及的并不多,也需要诸位加以注意:回到根本,流式处理实质仍然是一个分布的计算过程,它的计算过程中,在集群中的作用节点肯定不会是一个,而是N个,这样就要求所有节点都必须同时满足操作流式处理所需要的内存,当任何一个节点不能满足流式处理要求的内存时,这个节点的流式处理将被迫转向磁盘,恢复成磁盘数据处理过程。虽然只是一个节点,但是根据水桶短板效应,这次流式处理的总处理时间将被这个节点拖累,实际的处理时间与磁盘处理无异,并不能达到流式处理的要求。这种现象,是目前各种流式处理都无法完全避免的,尤其当运行系统存在多用户多任务竞用的时候。
  解决这个水桶短板效应的办法是“预约”。就是在执行计算工作前,先评估一下这次流式计算所需要的内存总量,然后启动一个“流代理任务”,到每台计算机上去检查剩余内存,如果符合要求,就锁定这台计算机的内存,检查全部达标后,批准此次流式处理。不过这样又产生新的问题:就是如果内存不足的时候,流式处理任务将被迫转入等待;或者实际内存不能满足要求时,仍然要回退磁盘处理的老路。这样的处理办法,将造成与快速计算的目标相悖。但是目前看,也只能是这样了。
  再从运营商的角度来谈谈流式处理。
  诸位应该都知道,同样单位容量情况下,内存比硬盘贵多了。这个情况大家可以打开淘宝看看,1TB的硬盘和1TB的内存,它们的价差是多少。此前我们给一个云服务商做预案时做一个测算,以一个中型集群(1000台服务器为单位)来计算,如果提供相对适中、让用户感觉比较顺畅的流式处理,仅内存一项,就是增加一百万元人民币以上的成本。况且在实际部署时,云服务商要部署的集群通常不只一个,那样增加的内存成本就更高。所以,实际上除了阿里、腾讯这样超级土豪级别的公司,没有几个云服务商肯接受这样的成本预案。
  最后总结一下:一个时间里,单个业务做流式处理效果最佳,多个业务并存就不好说了。还有,能不能在大数据集群中执行流式处理,让用户获得快速计算能力,更大的成分,并不是技术问题,而是钱的问题,它和集群所有者兜里的银子成正比。这和金融、地产是一样的,没钱就别玩!

中国广州超算中心的天河2号

美国能源部橡树岭国家实验室的Titan


  中国的天河2,美国的Titan,所以有这么强的性能,都是拿银子堆出来的。这样超一流的硬件条件,配上可靠的大数据处理软件,做起超级计算、流式计算、超大规模数据存取工作来,自然是得心应手。

网友评论
<