Hadoop 已死,Hadoop 万岁

本文作者是 Arun C Murthy,Cloudera 现任 CPO,原 Hortonworks 联合创始人与 CPO。自 2006 年 Hadoop 诞生就大量参与数据工作。老的体育灵魂,牧羊犬工程师。
最近又有很多关于“Hadoop 已死”的论调,似乎每隔一段时间就会有一些类似的文章或声音。几年前 Cloudera 就已经停止了以 Hadoop 来营销自己,而是一家企业数据公司。如今,Cloudera 也已进入企业数据云市场:混合 / 多云和多功能分析,具有通用的安全和治理,所有这些都由开源提供支持。
话虽如此,但要挑战如潮水般“Hadoop 已死”的负面消息,还是有难度的。我的看法是 Hadoop 代表的是数据领域的开源社区,这个社区本就是由我们共同创造和维护的,这一点在 13 多年的时间里,我从未改变。

什么是 Hadoop

让我们从基础开始 – Hadoop 作为 Apache 软件基金会的一个开源项目开始,使用 HDFS 和 MapReduce 实现批量应用,但很快就扩展成为一个广泛、丰富和开放的生态系统。今天 Cloudera 的“Hadoop 发行版”(CDH/HDP/CDP)包含 30 多个开源项目,涉及存储,计算平台 (比如 YARN 和未来的 Kubernetes),批量 / 实时计算框架 (Spark,Flink 等),编排,SQL,NoSQL,ML,安全 / 治理等等。
所以,如果你认为 Hadoop 仅仅就是 MapReduce,那么是的,我同意 – MapReduce 正在没落。但这与 Spark,Flink 以及其它所有我们所接受的创新都没有关系,这些新特性或创新令我们的客户也非常满意。这就是这个平台的美丽与强大之处 – 它可以演变为拥抱新的范例。
那么,如果 Hadoop 不是“项目”或一组项目,它是什么?
就个人而言,“Hadoop”是一门哲学 – 向管理和分析数据现代架构的转变。
呃,再说一次?

“Hadoop 哲学”

Hadoop 哲学一直遵循以下原则:
1. 向每个层(存储,计算平台,批处理 / 实时 /SQL 等计算框架)分解软件栈的转变,构建为可组合的乐高积木,远离单一且不灵活的软件栈(例如具有自定义存储格式,解析器以及执行引擎等垂直整合的数据库)。
a) 特别是,这有助于建立一个开放元数据,安全和治理的平台,以让分解的软件栈和谐相处。
2. 利用商用硬件构建大规模分布式系统并远离专有 / 单一硬件与软件的转变。
a) 在经济理论中,商品被定义为具有充分或实质可替代性且具有广泛可用性的物品或服务,这通常导致较小的利润率并且减少除价格之外的因素(例如品牌名称)的重要性。
b) 请参阅下文,了解如何从架构上做出很好的转变,以应对公有云的出现。
3. 利用开放数据标准和开源技术,远离专有供应商控制技术的转变。它不仅仅是开放标准,标准是实现而不仅仅是“规范”。
4. 向灵活且不断变化的技术生态系统(MRv1 -> YARN -> K8s,MapReduce -> Spark/Flink 等)的转变,远离使用单一技术栈满足所有需求,从而在每个层面都实现创新。
在某些方面,“Hadoop 哲学”是数据架构,Ken Thompson 著名的 Unix Philosophy 是软件开发。Eric Raymond 在著名的 Art of Unix Programming 一书中阐述的 17 条 Unix 规则,许多也适用于这个领域:

1. 模块化原则 (Rule of Modularity):写简单的,能够用清晰的接口连接的代码。
HDFS,YARN/K8s,Spark,Hive 等可以组合并相互依赖。
……
3. 组件化原则 (Rule of Composition): 设计可以互相关联(拆分)的程序。
Impala,Hive 和 Spark 等都是高度可组合的,用于端到端的解决方案。
……
4. 分离原则 (Rule of Separation):策略和机制分离,接口和引擎分离。
HDFS 既是文件系统接口,也是文件系统实现。这就是 Spark 通过 Hadoop 兼容文件系统“API”可以与 S3 对话的原因。
……
6. 小巧原则 (Rule of Parsimony):不要写大的程序(模块、方法)。除非很明显的,没有别的办法可以完成。
我们避免“大”/“胖”层,而是使用依赖于另一个的模块化层。比如 Phoenix 和 HBase。
……
7. 透明原则 (Rule of Transparency):为可见性设计,使检查和调试更容易。
开源 For The Win(FTW)
……
16. 多样性原则 (Rule of Diversity):决不相信所谓 ” 不二法门 ” 或 ” 银弹 ” 的断言。
我们的生态系统提供了多种工具,因为它们对于不同的场景有不同的优势 (通过 Spark 或 Hive 进行 ETL,通过 Hive/Tez/LLAP 或 Impala 或 Spark SQL 进行 SQL 查询)
17. 可扩展性规则(Rule of Extensibility):设计着眼未来, 未来总比预想来得快。
2005-2006 年初,我们无法预测 HBase,Hive,Impala,Spark,Flink,Kafka 等的出现,13 年来我们做了很多工作来使它们成为一流的关键组件。

关于云

现在公有云 (以及私有云) 显然已经成为企业部署架构的组成部分。
公有云基本上是企业硬件基础设施(服务器,网络,数据中心等)的商品化。因此,它完全符合“Hadoop 哲学”的原则 – 专注于商品硬件。此外,整个 Hadoop 生态系统一直是为了“变形 (shape-shift)”并吸收新的变化而建立的 – Tom White 于 2006 年编写了第一个 S3-Hadoop connector,亚马逊在 2009 年推出了 EMR。

Tom White wrote the first S3-Hadoop connector in 2006
https://issues.apache.org/jira/browse/HADOOP-574

与此相比,传统数据库供应商分解单一和高度工程化 / 融合的硬件 / 软件栈使其能“原生”的在公有云中运行,可想而知会有多难。
不幸的是,作为一个行业,我们在帮助市场(特别是金融市场)了解“Hadoop”与传统技术在拥抱公有云的能力方面的区别不是太给力。有些事值得我们去思考以及去解决。
AWS EMR,Azure HDInsight 和 Google Dataproc 是 Hadoop 如何在公有云中为客户大规模推动价值和业务的绝佳例子。

关于 Cloudera

Cloudera 是一家数据公司。我们使人们能够将数据转化为清晰且可操作的洞察力。我们通过拥抱“Hadoop 哲学”来实现这一目标。我们建立了这个市场 – 我们为过去感到自豪,但不会被它蒙蔽。我们采用新的主流技术 (公有云,Kubernetes 等),因为这么做是有意义的,使我们的客户受益,并且与我们的使命一致。
我喜欢贝索斯的哲学:专注于不改变的事物。从现在起一百年后,企业仍然希望将数据转化为洞察力。这就是我们的工作,并将继续这样做。

对我们来说,有些事情已经发生了变化,我们需要注意到。五年前,当我们成为“it”技术时,我们获得了一个大厅通行证 (hall pass)。所有很酷的孩子都想跟我们绑在一起,给我们带来了他们能找到的所有用例,并将我们展示给他们的朋友。在某种程度上,“答案是 Hadoop – 问题是什么?”是普遍存在的情况。这导致了一些不合理的期望,这些期望在产品生命周期中是不现实的,或者过早。
现在我们必须更努力地说服客户使用我们带入市场的东西,但我们带给他们的价值和理念是毋庸置疑的。我们还需要说服客户使用我们这些技术,如 CDP。今天他们依旧与我们合作,正如他们在我们的平台上运行的数千 PB 数据和数百万分析应用程序所证明的那样!
从本质上讲,我们将通过参与用户和企业想要存储 / 管理 / 保护 / 管理 / 分析数据的用例来继续蓬勃发展。我们愿意被误解一段时间,因为这些负面消息会重复出现,然后会慢慢消退,因为我们用结果来证明一切。所有伟大的公司会不时被误解,但经久不衰的公司会坚忍不拔。
我前几天在社交媒体上看到了这个评论:
“如果我在 Kubernetes 上使用 CDP 运行 Spark 来分析 S3 中的数据,那么 Hadoop 在哪里?”
我其实笑得很开心,并且想:
只要您使用 CDP 服务… 🙂
Gartner 分析师 Merv Adrian 喜欢讲述一个类似的故事,一个客户称他“最喜欢的 Hadoop 应用程序”是使用 Spark 运行 TensorFlow 分析 S3 中的数据。Merv 问他为什么那是 Hadoop,他回答说:“它是“Hadoop”,因为 Hadoop 团队建立了它”。此外,使用的 Spark 确实来自 Hadoop 发行版。因此 Merv 指出:“情人眼里出 Hadoop”。
CDP 的基本目标是作为一个云服务,让企业不用面对大量复杂的技术,而能够更简单的从平台获取价值。特别是我们在 CDP 中为数据仓库和机器学习提供原生的 SAAS 服务,使业务用户可以轻松的对云对象存储中的数据进行分析。此外,SDX 使用 ABAC 和存储在对象存储和本地 HDFS 中的数据的细粒度策略建立完全安全的数据湖,以及治理和加密(包括存储加密和传输加密)。我们在这方面取得的进展非常非常令人兴奋 – 正如我们从许多企业客户提供的反馈中看到的那样!

所以,Hadoop 已死?

你所认为的传统的 Hadoop 已经死了,确实如此。但 Hadoop 作为一门哲学,推动不断发展的开源技术生态系统和开放数据标准,使人们能够将数据转化为洞察力,这门哲学是充满活力和持久的。
只要有数据,就会有“Hadoop”。
Hadoop 已死,“Hadoop”万岁。
Apache Hadoop,Apache Spark,Apache Flink,Apache Hadoop HDFS,Apache HBase 等都是 Apache Software Foundation 的商标。

本文转载自公众号“Cloudera 中国”: https://mp.weixin.qq.com/s/riZAhwcRlo-VyIehfbiUwA