分布式计算、大数据的感悟

对比 MapReduce、Storm、4in1、Hive、Impala等分布式计算框架,可以得出如下结论:

  1. 普适(例如MapReduce框架 )是优点,但也是限制所在。 普适采用的是“一条道跑到黑”的理论,对于结构简单而清晰的大批量数据的进行并发处理,效果当然可以不错。但是只要有“结构简单”的数据,就会有“结构不简单“的数据。
  2. 极端情况下,MapReduce要么无法解决问题(很多计算问题无法或者很难套用MapReduce算法解决)、要么时效性低的可怜(MapReduce只适合做离线大数据量处理,却无法做线上的流数据处理,而Storm的诞生就是为了解决这个问题:流计算)。
  3. MapReduce和Storm都是普适型的框架,但也都有自身的适用领域(一个可以并行处理大量的静态数据,一个可以并行处理大量的流数据)。这两者就像是硬币的两面,谁也无法替代谁。
  4. 但是这两者的组合也不是最终的银弹:这两者结合起来使用或许可以解决90%的大数据领域的问题,但是剩余的10%问题两者都无法解决。
  5. 于是,为了解决这剩余的10%的问题,或者提高前面提到的90%问题的解决效率,新“轮子”依然层出不穷。这些新兴的框架都在各自的领域闪闪发光,尽管这些领域可能已经很小很小。大数据的时代,是人类借助机器帝国进行呼风唤雨的时代。每一点优秀的改进,都可能极大地影响人类进步的进程。所以,各大公司在技术研究的投入上依然孜孜不倦...
  6. 对于那些更加少数派的情况(或许是那剩余的1%的问题),则必须采用更加针对的定制方案了(例如4in1(本质上是多机多线程协同处理),甚至是直接单机多线程(优势在于架构简单清晰,无需处理协同的问题)的手段)。此时,那些无法“普适”的框架的光芒便在此时体现出来了: 可以针对性的定制开发!
  7. 如果说MapReduce的诞生是对非结构化数据进行并发处理的努力的成果,那么Hbase、Hive、Impala就是对结构化的大数据的努力尝试。这三者的功能越来越强,封装越来越高级。
  8. Hbase简单粗暴,功能较为原始,相当于是RAW处理。Hive则在Hbase的基础上进了一步,处理的手段变得智能化了一些,但依然是个大老粗,依然难以处理更加细化的场景; 而Impala便更加细致了,其针对性更强,属于“奇技淫巧”的范畴,能够深入到Hive难以处理的领域。
  9. 着技术的发展,一定会出现凌驾于Impala之上的处理框架。那么,这个框架的作用是什么呢?


为了回答上面第9点提到的问题,我们不得不思考我们做大数据的最初的理想是什么?是什么呢?为什么要出现大数据呢?它为了解决什么样的问题?它的最终理想是什么?


  1. 大数据首先要解决的是“能存储”的问题(hdfs),例如100TB的单个文件,单机根本无法承受,即使能承受,也无法处理。此时只能借助于hdfs、gfs等系统。
  2. 然后解决的是“能处理”的问题。同第1点,单机无法处理100TB的大文件,但是如果将其分解为无数个64MB的“块”,配合专用的MapReduce算法,让1000台机器去并发处理,那么“人多力量大”,不仅能处理,而且效率很高。
  3. 然后需要解决“能检索”的问题,于是产生了HBase。这下,不仅可以存储海量数据,还能方便地检索数据了。但是检索的方式比较简单粗暴和原始。
  4. 然后需要解决“好检索”的问题,于是产生了Hive、Impala。。。这下,海量数据不仅可以检索,还能支撑高级条件检索了,比Hbase要进步不少。
  5. 但是,还不够!!!还要更多、更好、更快、更强、更智能。。。人类就是这么贪婪的动物,但是此处的贪婪是个褒义词,对美好生活的期盼会促成人类发现更多更强大的科技。最终的理想,应该是在大数据的基础上的,实现关系数据库的所有功能、甚至要更进一步!

为什么关系数据库是理想?因为这种数据库类型最容易理解、最容易编码实现业务,并且拥有广泛的应用基础(近几十年的业务处理所采用的数据库系统大多都是关系数据库系统)。关系数据库的限制,应该就是单机的处理性能、存储量有着各种极限限制、并且难以扩容。换句话来说,如果关系数据库能够原生支持大数据量存储、分布式计算、无缝扩容等技术难题,那么Hadoop等框架也不会诞生了。

所以,归根到底,大数据要解决的,还是数据库的问题!最终的理想,是要具备:海量数据存储+关系数据库API+极速检索 这几个核心特性。海量数据存储是目的,无缝扩容是实现的手段。NOSQL只是补充,关系数据库API即使从长期看也不会过时,NOSQL永远也无法替代关系数据库API,因为这两者虽然相似,却在本质上有着重要区别,因此谁也无法代替谁。而极速检索,是所有数据库系统的共同的理想。

PS:个人认为NOSQL、HBase等等应该都只是过渡方案,因为它们都普遍有一个缺陷:可用,但是并不是最好用的,所以未来应该是分布式关系数据库的世界。正如现有的油电混合动力电动车也是过渡方案,未来是纯电动车的世界!

你可能感兴趣的:(分布式计算、大数据的感悟)