近期 Hadoop 消息不断,众说纷纭。本文以 Hadoop 的盛衰变化为楔子聊下大数据分析的发展现状和未来趋势。
15 秒钟简缩版:
自 2015 年开始 Hadoop 暴露出诸多问题引起注意。随后 Gartner、IDG 等公司分析师、Hadoop 用户和 Hadoop 和大数据圈内人士越来越多的反映出各种问题。
究其原因,主要如下:
Hadoop 巅峰已过成为行业事实,本文不打算在这个问题上继续论证。有兴趣的读者可以参考网上的诸多评论,甄选了一些笔者觉得有参考价值或沾边的文章罗列如下(从标题可以感觉到浓厚的萧瑟之气):
Ok,如果你和我一样,把上面所有文章都读了一个遍,说明你确实对这个问题很感兴趣。发邮件
给我(yyao AT pivotal DOT io),请你喝酒细聊 ;)
Hadoop 是否还能重振雄风?Hadoop 若要重回大数据的中心,需要的是信心和时间,然而现在 Hadoop 最缺的恰恰是信心和时间。业界已经给了 Hadoop 十多年的时间,不管什么原因,Hadoop 没有很好的解决大数据的问题,甚至没有很好的解决大数据的基本问题。人们很难相信再给它十年时间就可以搞定。随着问题暴露面越来越广,业界对 Hadoop 的信心逐渐大幅下滑。同样紧要的是,和十多年前没有选择不同,现在业界有多种大数据方案(特别是开源方案)可供选择。
然而这并不意味着 Hadoop 会消失,经过十多年的发展,现在全球部署有很多 Hadoop 集群,这些遗留资产及其衍生需求会持续相当一段时间。Hadoop 的根基 HDFS 受到对象存储挑战,在公有云上已经败下阵来,在企业内部暂时会保住守势,然而随着云厂商进入企业级市场,很快也会面临极大挑战。Hadoop 也在向对象存储发展,将来或许有望成为多种对象存储解决方案中的一个候选项,然而可以肯定的是 Hadoop 不再是讨论的中心。
HortonWorks 联合创始人、CPO,现任 Cloudera CPO Arun C Murthy 于 2019 年 9 月 10 日发文表示: The old way of thinking about Hadoop is dead — done, and dusted. Hadoop as a philosophy to drive an ever-evolving ecosystem of open source technologies and open data standards that empower people to turn data into insights is alive and enduring. (来自微信公众号的译文:你所认为的传统的 Hadoop 已经死了,确实如此。但 Hadoop 作为一门哲学,推动不断发展的开源技术生态系统和开放数据标准,使人们能够将数据转化为洞察力,这门哲学是充满活力和持久的。)
“形而上者谓之道,形而下者谓之器”。无器以为载体,则坐而论道。
首先捋一下 Hadoop 几个主要组件的发展脉络。
从上面的发展脉络可以清楚的看出,Hadoop 从分布式存储和并行计算模型开始,逐渐发展成了 MPP 数据库,而 MPP 数据库做为成熟数据仓库解决方案已经发展了三十多年。可见 Hadoop 市场主要是 SQL 市场。然而 Hadoop 和其他经典 MPP 数据库相比,从性能、SQL 兼容性、扩展性等各个方面来看,Hive、Impala 等并不占优势。Gartner 2019 年发布的数据分析市场排名,Hadoop 三大发行商排名都在十名以外(前三名是 Teradata、Oracle 和 Greenplum)。
从市场角度也印证了这一说法:Cloudera 官方表示其收入的 75%来自于 SQL 产品。最近(2019 年 9 月 4 日)Cloudera 宣布收购 AI 驱动的云原生 BI 厂商 Arcadia Data,印证了 Hadoop 市场领头羊 Cloudera 发力的发展方向。上文中提到的 Cloudera CPO 也公开指出:“For several years now, Cloudera has stopped marketing itself as a Hadoop company, but instead as an enterprise data company.”
大数据分析包括两个层面,第一个层面是基本分析,第二个层面是高级分析。
基本分析层面涉及的主要应用和场景为 BI、交互查询、可视化等场景。这些场景使用的主流核心技术是 SQL,BI 等产品的基本玩法是 SQL+图形用户界面(UI)。和此相关的主要 SQL 特性是分组(group by)和聚集(aggregation)、窗口(window)函数、数据立方格(Cube)等。这些 SQL 功能背后的主要计算基本都是小学数学中的加减乘除,看起来高大上的“大数据分析”大都是些小学数学的东西,当然对海量数据进行这些分组加减乘除且保证 ACID 特性是很有挑战性的。诸如 Greenplum、Vertica 之类的分布式 MPP 数据库已经很好的解决了这些问题。
高级分析层面涉及到诸如机器学习、模式识别、AI 等复杂算法的采用。目前这一层面有下沉到数据库内部的趋势。Apache MADLib 是最早引领这一趋势的成熟商业产品。2017 年谷歌发布了 BigQuery ML 亦是基于 SQL 的高级分析方案。对此感兴趣的请参见数据库内建分析介绍一文。
从大数据分析的两个层面来看,其核心均为 SQL。对更多这方面信息感兴趣,以及对数据处理平台演进历史和其原动力感兴趣的朋友,可参考 Greenplum 中文社区资料下载页面的《2.数据处理平台之演进》和《3.大数据≈分布式数据库》。
如果你有足够多整洁的数据,那么高级数据分析对你而言不是问题。
这里“足够多”不一定意味着 PB 级海量数据,仅指可以满足需求的数据量,不同场景需求不同,从 MB 到 GB 到 PB 级不等。高级数据分析不一定需要大数据,现在还广为使用的商业分析产品如 SAS、 SPSS 都是单节点的,可处理数据量大不到那里去。
大量的研究也证明,即使所用算法不变,数据量越大,模型的精度也会更好,结果准确度也越好。因而尽量使用更多数据,使用全量数据而不是抽样成为提升精度的首要手段。
“整洁”意味着数据是标准的、准确的。然而现实却远非如此。不准确的数据会造成高级分析结果的严重偏差。
数据工程师和数据科学家面临着数据发现、数据集成和数据清洗等大量复杂问题。为了解决这些问题,数据科学家需要花费大量时间去整理数据而不是分析数据。大量报到表明,数据科学家花费至少 70%以上的时间进行数据发现、集成和清洗工作。iRobot 上一位数据科学家甚至表示:“我 90%的时间用于发现和清洗数据,剩余 10%时间中的 90%用于纠正清洗过程中的错误”。这或许有些夸张,然而数据库科学家的主要工作内容可见一斑。如何提高数据工作者这方面的效率是目前国内外非常活跃的投资领域。
综上,作为第一代大数据方案的 Hadoop 巅峰已过,大数据进入第二代:分布式数据库。
分布式数据库特别是 MPP 数据库已经很好的解决了大数据基本分析层面的问题,未来持续向着更易用更快的方向发展。
高级数据分析向着下沉到数据库内部的方向发展。高级数据分析层面的难点不在分析,而在于数据本身的数量和质量。期待这一方面有更多创新涌现。
作者简介:
姚延栋,纽交所上市企业 Pivotal 全球研发总监,中国研发中心副总经理,Greenplum 中文社区创始人。在中国和 Pivotal 中国 MD 联合创建了 Pivotal 中国研发中心,培养了一支世界顶级的数据库内核开发团队,用时十年把 Greenplum 发展为世界排名第三的分析型数据库( Gartner 2019 ),成为大数据和机器学习领域意见领袖。在创建 Greenplum/Pivotal 中国之前,曾在 Sun Microsystem 与 Symantec 系统和存储部门工作多年。于 2005 年毕业于中科院软件所,拥有多项国内外云计算和大数据专利,并著有《Greenplum:从大数据战略到实现》。
领取专属 10元无门槛券
私享最新 技术干货