不过,俗话说没吃过猪肉还没见过猪跑吗?哈哈,今天就来说说我对大数据技术的思考吧,希望可以解开部分同学心中那一份疑惑吧!
所以,大数据只是一种场景而已。
为什么有这么多技术呢?实际上因为有这么多的场景问题需要解决,而在大数据领域内,又没办法让一个框架做完所有的事,所以就将这些场景进行了拆分,形成了各种独立的技术。而已。
所以,大数据技术实际上是领域细分的结果。
那么为什么还必须要大数据技术?实际上是因为,数据量超过一定量级后,前端系统已经没有办法提供业务支持了,所以在这种场景下业务需求就没办法再往前端堆砌了。不是少堆砌,而是一点也不能了。这种情况持续了许多年,大家一直在保持数据尽量小的边缘反复试探,反复删库跑路。
所以,有时候我们说,发现问题时就已离解决问题也不远了,实际也不一定,你总有无能为力的时候。
所以,大数据虽只是一个场景,但大数据技术是必须的,因为只有它能处理这个场景。这就是宿命。
尽管如此,我还是想说两句:大数据技术的核心原理是并行计算和分布式存储。
我们可以用大白话翻译一下:大数据技术的核心逻辑,第一:是使用了许多台机器一起参与运算。从而使我们原来在一台机器无法处理完成或需要几天几个月的时间才能完成的任务,被分摊到这多台机器上,这是显而易见的事情。第二:使用了多台机器一起存储数据,从而解决了原来一台机器无法存储的容量或要求超级计算机才能存储的容量的问题。这也是显而易见的,一台机器存储不了,那就两台,不行就再加。
以上,就是我认为的大数据技术的核心原理。而要达到上面两个核心原理,又都必须有一个能力:任意横向扩展;这些问题处理的复杂性,造就了大数据技术的庞大与复杂。
但我还得重申几个问题:
- 是否为前端提供服务?
- 数据来源是啥?
- 能够对外输出什么?
- 目标用户是谁?
- 核心功能是啥?
- 性价比如何?
上面几个问题,有些是轻而易举能就能问答的问题,比如:一般不会直接为前端提供服务,数据源往往来自于各种各样的存储系统,消息系统。但后面几个问题比较难答了。如果这几个问题想不清楚,那也许你的大数据据系统可能就是无谓地浪费而已。因为很明显的,大数据系统的支出是不便宜的,并行计算和分布式存储,至少需要的是大量带宽和磁盘容量(而且可能要求SSD这种昂贵的盘),还有其他许多隐形支出。
有了先驱者,后来者便蜂拥而上,不停地完善其中的不足,尤其是一眼就看到的分布式计算mr。而限制mr的一个重要原因则是基于磁盘的数据交换。
于是,spark出现了,它的核心或者初衷是解决了mr运算速度的问题,因为它是尽可能基于内存的数据交换,和磁盘速度相比自然有一个量级的提升。不要小看这一个量级,有的东西的前提就是基于这一个量级(比如超过一天就无效,而在几小时内则是有效的)。而后又有了spark生态圈的繁荣昌盛,极大推动了大数据生态的发展。spark可以说也是一个质的改变。
但spark遇到了一个难以解决的问题,即它的架构是基于批处理的,批处理领域无可挑剔,挑剔的是人。人们要求大数据系统能够实时反馈业务变化,于是spark尴尬了,于是storm出现了。(不了解)
flink找到了批处理与流处理的间隙,一把杀向市场,提出了批流合一,再加上各大厂商的鼎力相助,于是乎发展得如火如荼。但我只能给它打个中等分数,因为它只能算得量变而算不得质变。
花开两朵,花分两头。在另一条线上,分布式存储也发生了变化,如hive,pig,hbase,cassandra,presto,impala,sparksql,kylin, flinksql...
下一篇:一篇文章告诉你5G究竟是什么