我们已经进入了“大数据时代”,2011 IDC Digital Universe报告说,数据增长的速度已经超过了摩尔定律(Moore's Law)。这种趋势表明企业处理数据模式的转变,即隔离的孤岛正在被大型集群服务器所取代,这种服务器集群将数据与计算资源保存在一起。
从另一种角度来看这种模式转变,这种转变表明数据增长的速度和数据量需要一种新的网络计算方法。在这方面,谷歌就是一个很好的例子。早在1998年谷歌推出测试版搜索引擎时,雅虎公司占主导地位,其他竞争者还包括infoseek、Lycos等,而在短短两年内,谷歌就成为主导搜索引擎供应商。直到2003年,谷歌发布一份关于MapReduce的文件,我们才有幸窥见到谷歌的后端架构。
谷歌的架构显示了该公司如何能够索引更多数据,以更快地获得搜索结果,以及比所有竞争对手更有效和更具成本效益地获取这些结果。谷歌做出的转变是将复杂的数据分析任务分成简单的子任务,这些子任务在并行商品服务器中执行。单独进程被用于映射Map这些数据,然后将其缩小Reduce到中期或最终结果。这种MapReduce框架最终通过Apache的Hadoop供企业使用。
Hadoop简史
在2003年阅读了谷歌的文件后,雅虎工程师Doug Cutting开发了基于Java的MapReduce,将其命名为Hadoop。在2006年,Hadoop成为Apache软件基金会Lucene(一种流行的全文检索库)的子项目,并在2008年成为顶级Apache项目。
从本质上讲,Hadoop提供了对大型商品计算机集群间的捕捉、组织、存储、搜索、共享、分析和可视化不同数据源(结构化、半结构化和非结构化),并能够从几十台服务器扩展到上千台服务器,每台服务器都提供本地计算和存储。
Hadoop包含两个基本组成部分:首先是作为主要存储系统的Hadoop分布式文件系统(HDFS),HDFS复制和分发源数据块到服务器集群的计算节点,以由一个或多个应用程序进行分析。其次是MapReduce,它创建了一个软件框架和编程模型,用于编写能够并行处理大量分布式数据的应用程序。
Apache Hadoop的开源性质创建了一个生态系统,使其功能、性能、可靠性和易用性都不断进步。
保持简单性和可扩展性
在名为“数据不合理的有效性”的文章中,来自谷歌的研究人员将简单的物理方程式(例如E = mc2)与其他学科对比,并指出,“涉及人类而非基本粒子的科学更适合使用简单的数学算法”。
事实上,简单的公式完全能够解释复杂的自然世界,以及理解难以捉摸的人类行为,这也是为什么Hadoop普及的原因。
研究人员发现,相对简单的算法适用于大规模数据集,并能产生惊人的结果。其中一个例子就是scene completion技术,它使用一个算法来消除图片上的某物(例如汽车),然后从成千上万的图片资料库中寻找合适的照片进行“修补”,当图片资料库的照片增加到数百万时,该算法表现不佳。当拥有足够的数据,这种简单的算法表现极为出色。寻找模式以及“修补”技术是当今很多数据分析应用程序的共同主题。
数据分析还面临着另一个固有复杂性:非结构化数据与非结构化数据的增加。非结构化数据(例如日志文件、社交媒体、视频等)的规模和重要性同时在增加,并且有些结构化在经过一些变化后也失去了结构。传统分析技术在产生结果前需要对非结构化和半结构化数据进行大量预处理,并且如果预处理存在某种缺陷的话,产生的结果可能是错误的。
Hadoop采用简单算法来分析原始形式的非结构化、半结构化和结构化数据以及产生有意义结果的能力是前所未有的,目前来看,也是无与伦比的。MapReduce使我们能够以渐进的方式来分析数据,而必须要进行复杂的数据转换或者其他数据预处理,或提前创建任何模式或整合数据。
数据分析的价格和性能
Hadoop不仅提供卓越的数据分析功能和结果,还比传统数据分析工具更具成本效益。其原因是传统数据分析工具的扩展数据分析能力主要遵循80/20规则:最初的小努力和付出能够带来大收益,但随着数据集发展为大数据,这种回报会减少。
形成鲜明对比的是,Hadoop可以线性扩展,这是有效且符合成本效益的数据分析的关键因素。随着数据集的增长,传统数据分析环境规模呈指数增长,为获取洞察力需要投入更多额外费用,这最终让人望而却步。而对于Hadoop,服务器集群能够随着数据集数量和规模的增长而直接附加存储线性地扩展规模。
Hadoop的这些优势是其在基于web的企业和数据密集型企业快速普及的主要原因。
然而,Hadoop部署面临的主要挑战仍然是其文件系统。HDFS是append-only(只允许在这个文件之后追加数据)存储要求数据装在Hadoop集群中,然而再输出后处理以供不支持HDFS API的其他应用程序使用。
Hadoop在较大型企业部署的另一个障碍是需要采取使环境可靠的特殊措施。需要不断监控Hadoop以确保单点故障不会导致灾难,在数据丢失的情况下,数据会被重新加载到Hadoop集群。
冲破障碍
Hadoop的这些问题已经成为过去式。开源社区创造了一个充满活力的生态系统,使Hadoop不断完善。一些公司现在正在提供基于开源Hadoop的商业产品。
越来越多商业Hadoop产品的推出推动了Hadoop的更广泛普及。这些商业产品使Hadoop更易于整合到企业,以及提供企业级的性能和可靠性。实现这些改进的方法之一是使用现有的标准通信协议作为基础,来使传统环境和Hadoop环境无缝集成。
结束还是刚刚开始?
数据分析模式正在转变,这为企业带来了真正的机会。Hadoop让所有企业能够通过这种模式转变所提供的洞察力优势来获得显著的竞争优势。
Hadoop无疑是一个改变游戏规则的技术,并且随着企业级商业Hadoop产品的推出,Hadoop本身也正在发生转变。这些下一代解决方案正引领新的数据分析模式。