对于Hadoop飘忽不定的未来,Ness SES的***技术官(CTO)Moshe Kranc写下了这篇文章。
计算机世界充斥着大量先动者的产品,但最终都会被追随者所取代,后来者从创新者的错误中学习并继续发展。我相信这是Hadoop的命运,因为Spark和Cassandra等已经在大数据社区获得了持续发展的动力。
为了证明上述观点,我需要先来讲一点历史。
“Hadoop作为一个概念彻底改变了数据处理世界,并最终迎来了大数据时代!”
大约20年前,Doug Cutting在创建Web搜索引擎时面临两大问题:
- 如何可靠地存储所有信息?
- 如何创建大量查找索引?
之后,Hadoop诞生了。它包括分布式、高可用的文件系统和用于大规模并行计算的Map-Reduce框架。
MapReduce确实是革命性的,它让曾经难以解决的问题可以在几分钟内被解决。但是,它没有利用内存来提高性能,并且在处理增量更改时很糟糕,例如,将单个新推文的索引添加到现有的完整Web索引。
随着时间的推移,Hadoop用Tez取代了原来的MapReduce框架,Tez使用定向非循环图进行并行处理,理论基于微软2010年有关Dryad的论文。但是,Tez已经被另一款产品抢先了,这款产品就是Spark。Spark的实现更通用,例如,可以有效检查和恢复各计算阶段的数据。Spark可以运行在Hadoop生态系统中(它很快将取代Tez),或者它可以在自己的独立环境中运行。越来越多的项目选择Spark作为其大数据解决方案,将Hadoop Spark或Spark standalone作为次要选择。目前超过25%的Spark项目在Hadoop之外运行,并且这一比例在不断上升。
很多大数据人士坚信Haoop会有一个光明年代,认为Spark和Hadoop根本没有可比性,不愿意承认Hadoop的年代感。
Hadoop文件系统(HDFS)也在展示其年代感。例如,它需要一个活动的NameNode才能运行,并且它使用Zookeeper来监控NameNode可用性。因此,当Zookeeper检测到活动的NameNode崩溃时,它可能会经历长达一分钟的“断电”。Hadoop已经发展出提高可用性的机制,但其他大数据系统(如Cassandra's)早已实现了高可用性,而无需主节点或外部监控工具,从而消除掉电风险。
大数据领域的趋势越来越明显。Hadoop作为一个概念彻底改变了数据处理世界,迎来了大数据时代。但是,作为一个产品和生态系统的Hadoop正在显示其年代感,对于许多用例来说,它已经被Spark等更现代的技术所取代,后者可以从Hadoop不断增长的痛苦中学习。Spark具有更通用和可扩展的编程模型,这使得它更易于分析。它还可以通过Spark Streaming处理Motion中的大数据,并作为强大图形数据库(GraphX)和全功能数据科学库(MLib)的基础。
也许这就解释了最近Gartner报告的发现,尽管对大数据解决方案的需求在不断增长,但对Hadoop的需求并没有像预期那样加速,企业对Hadoop的热情很低。
事实上,绝大多数接受调查的企业表示他们现在或未来都没有计划投资Hadoop。所以,尽管Spark,Cassandra和MongoDB等其他大数据技术仍然吸引了很多公司的兴趣,但Hadoop似乎正在遭受需求下滑的困扰。
领先的Hadoop厂商Cloudera和Hortonworks可能仍然有很高的估值,但他们花费太多的时间去发展每个新客户,并且还没有突破到主流企业。
为什么对Hadoop缺乏热情?一些分析师指责总拥有成本较高,另一些则认为是寻找具备必要技能的工程师存在困难。对我而言,这些只是说Hadoop正在显示其年龄感的不同方式。与任何具备20年历史的软件系统一样,Hadoop多年来也在不断发展,每一次演变都使生态系统更加复杂,难以部署或维护。像Spark这样的新系统具有更年轻和更健壮的代码库,对年轻的工程师而言,Spark等现代工具拥有比Hadoop更易于使用的现代编程API范例。
没有Hadoop,Spark和Cassandra恐怕不会取得现在的成绩。对Hadoop感恩的同时,我们或许要开始学会遗忘Hadoop,毕竟,它已经不年轻了。