大数据是现在的热门话题,虽然还处于初步的学习了解阶段,不过也借此机会写一写自己的认识。错谬在所难免,重在参与嘛。
随着互联网的崛起,数据的传播越来越快,数据的数量越来越多,数据的容量越来越大,人们正在步入一个大数据时代。在这样的大背景下,不同的大数据处理工具应运而生,其中的佼佼者有:Storm、Spark、Hadoop。据一些对大数据比较熟悉的先行者说,他们三者并不是相互取代,而是各有自己的面向,各有自己的优点,甚至于三者完全可以携手同行。Storm重在分布式的实时性计算,Spark重在内存集群快速计算,Hadoop重在批处理计算。“三剑客”可谓势头强劲,但仅从它们三者的知名度来看,知名度最高的当属Hadoop。何以见得?现在很多企业、很多培训机构一提到大数据,言必称Hadoop,它的影响力以及应用普及率由此可见一斑。
大数据是时代发展的必然产物,大数据处理工具又何尝不是时代发展的必然产物?伴随数据规模的增长,原有的硬件设施对其处理显得力不从心、捉襟见肘。简单的应对之道是购买更高处理能力的硬件,也就是简单地向上扩展。但是简单是要付出相应代价的:一是成本高,更高性能的服务器价钱昂贵,而且当数据规模又达到新购服务器的极致时,会再次出现瓶颈。如果单纯地以新换旧会使成本居高不下;二是扩展不灵活,这种扩展方式没有针对问题的实质,当数据规模再次超出新服务器处理能力后,没有很好的扩展机制来灵活地解决问题。另外一种应对之道,我们称之为向外扩展。所谓的向外扩展就是硬件的“横向”扩展,将原来一台服务器扩展成N台,这样减小单一服务器承受的压力,同时处理能力得到相应的提升。这种扩展方式,增加硬件的成本远低于向上扩展,并且灵活性大大增加。当然多机之间数据的处理、传输、交互都造成整体架构的难度、复杂度大大增加。这时以Hadoop为代表的大数据处理工具魅力登场,适时解决了架构方面带来的问题:海量存储、分布式处理、快速数据访问、失效转移、可靠性、可扩展性,成为一套公认的、行之有效的开源大数据解决方案。
说到这里,我们也顺带看一下Hadoop是如何产生的。Doug Cutting在研究搜索引擎过程中,急需海量信息处理的解决方案,在此过程中他看到Google发表的GFS与MapReduce的论文,让他产生了强大的共鸣,并动手完成的Hadoop的编写。此举着实让人钦佩不已,仅就论文就可以实现出如此划时代的重磅框架!我们也看过不少论文,可我们根本没法产出让人眼前一亮的一个解决方案。
本书试读部分有提到,Hadoop的核心组件除了HDFS(分布式文件系统)、MapReduce(分布式并行处理编程模型)以外,还有:HBase(用于对大量数据进行读写的Nosql列数据库)、ZooKeeper(分布式协调服务)、Oozie(可扩展的Workflow系统)、Pig(大规模数据分析平台)、Hive(用于大数据查询的类SQL高级语言)、Sqoop(用于关系型数据与Hadoop之间移动数据的连通工具)、Flume(用于从单机上将大量数据收集、聚合并移动到HDFS的分布式服务)。另外,还有诸如:Whirr、Mahout、BigTop、Ambari等诸多功能与组件加入。可以看出,现在Hadoop已经形成了有凝聚力、成规模的大型生态系统。这个生态系统协作发展,在金融、社交、商业、交通、旅游乃至于军事情报等诸多领域,以其“高可靠、高扩展、高性能、高容错、低成本”的特性,发挥出巨大的作用。
在目前这个大数据时代,我们也应该紧跟时代步伐,与时俱进了解与学习这方面的知识。