您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

Hadoop已死?Hadoop万岁!

发表于:2019-10-11 作者:读芯术 来源:读芯术

各种博客文章、杂志投稿中,“Hadoop已死”的说法死灰复燃,且又开始甚嚣尘上。近年来,Cloudera不再满足于Hadoop开源平台的身份,转而以企业数据公司的身份进行营销。如今,Cloudera已经进入企业数据云市场:混合云/多云服务,统一的安全体系和管理,多功能分析——都得益于Hadoop的开源服务。

话虽如此,在“Hadoop已死”这一负面论调的汪洋大海中航行,还是困难重重。


Hadoop是什么?

首先,从最基本的层面来讲——Hadoop最初是Apache 软件基金会的一个开源项目。后来,Map/Reduce 和 HDFS也分别被纳入这一项目中,很快就形成了一个广泛而丰富的开源生态系统。如今,Cloudera的“Hadoop发行版”(CDH/HDP/CDP)包含30多个开源项目,涵盖存储、计算平台(例如YARN,以及未来的Kubernetes)、批处理/实时计算框架(Spark、Flink等)、编排、SQL、NoSQL、ML、安全/管理等等。

所以,如果把Hadoop仅仅定义为MapReduce,那么,MapReduce的确正在衰落。但这并不妨碍Spark、Flink以及其他技术的兴起——这使客户感到高兴。这就是平台的美妙和强大之处——它可以进化,可以拥抱新的范式。

那么,如果Hadoop不是一个“项目”或“一组项目”,它又是什么呢?

“Hadoop”是一种哲学——是一场运动,是管理和分析数据的现代化体系结构的发展。


“Hadoop 哲学”

“Hadoop 哲学”始终遵循以下原则:

1. 转向分解软件堆栈,将每一层(存储、计算平台、批处理/实时/SQL计算框架等)构建为可组合的乐高积木,而不是单一且不灵活的软件栈(例如以垂直方式整合的具有定制存储格式、解析器、执行引擎等的数据库。

  • 尤其是,通过建立开放的元数据、安全和管理平台来协调分解的堆栈,有助于实现这一点。

2. 转向用于大型分布式系统的商品硬件,而不再是专有/单片硬件+软件堆栈。

  • 在经济学理论中,商品被定义为一种物品或服务,具有充分的可替代性和广泛的可获得性,这通常会导致较小的利润率,使价格以外的因素(如品牌)变得并不那么重要。
  • 请参阅下面的讨论,了解商品硬件在架构上如何很好地转化为公共云。

3. 转向利用开放数据标准和开源技术,而不是专有的、供应商控制的技术。这不仅仅是开放标准——标准是实现,而不仅仅是“规范”。

4. 转向灵活多变的技术生态系统(MRv1 -> YARN -> K8s, MapReduce -> Spark/Flink等),而不是对所有的整体堆栈一刀切,从而在每一层都能实现创新。

从某种层面来说,“Hadoop哲学”对于数据架构来说,就像著名的Unix 哲学对于软件开发一样,Eric Raymond在其著作《Unix编程艺术》中阐述了17条Unix规则,同样适用于该领域:

1. 模块原则:使用简洁的接口拼合简单的部件。

• HDFS, YARN/K8s, Spark, Hive等既可以相互组合,又相互依赖。

3. 组合原则:设计时考虑拼接组合。

• Impala,Hive, Spark等可用于端到端的解决方案。

4. 分离原则:策略同机制分离,接口同引擎分离。

• HDFS既是文件系统接口,也是文件系统实现。这就是Spark通过Hadoop兼容文件系统“API”与S3对话的原因。

6. 吝啬原则:除非确无它法,不要编写庞大的程序。

• 避免出现“大”而“胖”的层,而是使用依赖于其他层的模块化层,例如Phoenix和HBase。

7. 透明性原则:设计要可见,以便审查和调试。

• 开源FTW!

16. 多样原则:决不相信所谓“不二法门”的断言。

• Hadoop生态系统提供了多种工具,因为它们适用于不同的场景,并且具有不同的优势(可以通过Spark或Hive实现ETL,通过Hive/Tez或Impala实现SQL,通过LLAP或SparkSQL实现SQL)。

17. 扩展原则:设计着眼未来,未来总比预想来得快。

• 在2005-2006年时,很难预测到HBase, Hive, Impala, Spark, Flink, Kafka等产品的出现,但在过去13年多的时间里,它们成为了高质产品和堆栈的关键组件,这已经是很好的成果了。


云是什么呢?

如今,公共云(以及私有云)显然将成为企业部署体系结构中不可或缺的一部分。

公共云本质上就是企业硬件基础设施(服务器、网络、数据中心等)的商品化。因此,它完全符合Hadoop哲学的原则——专注于商品硬件。此外,整个Hadoop生态系统一直都是为了“变形”和吸收新影响而构建的——Tom White在2006年编写了第一个S3-Hadoop连接器,Amazon在2009年引入了EMR服务。

与此相比,传统数据库供应商很难分解单个的、高度工程化、融合一体化的硬件/软件堆栈,并使它们在公共云中进行“本地化”工作。

不幸的是,就整个行业来说,没能很好的帮助市场(尤其是金融市场)理解Hadoop与传统技术在公共云方面的区别。这值得思考,且亟待改善。

亚马逊的 EMR、Azure的HDInsight,以及谷歌的Dataproc都是很好的例子,能够很好地说明“Hadoop”是如何在客户群的公共云中大规模推动巨头价值和业务的。

Cloudera是什么?

Cloudera是一家数据公司。这家公司能够将数据转化为清晰且可操作的观点,这主要是通过“Hadoop哲学”来实现的。我们建立了这个市场——为自己的过去感到骄傲,但并没有被蒙蔽。我们借力于技术浪潮(公共云、Kubernetes等),这不仅有益于客户,也符合公司的使命。

即使再过一百年,企业依然会希望将数据转化为观点。这是我们正在做的,并将持续做下去。

有些事情确实发生了改变——这需要引起注意。五年前,当我们还是IT技术时,就获得了通行证。所有的酷小孩都想和我们一起玩,把他们能找到的所有用例分享过来,还向他们的朋友们炫耀我们。在某种程度上,当时的主流情绪是“已经知道答案是Hadoop——那么问题是什么?”。这导致在产品生命周期的早期出现了一些不合理的、不切实际的期望。现在我们需要努力去说服客户,才能让其使用我们的产品,但是带给他们的价值和理念是毋庸置疑的。我们还需要说服客户使用如CDP之类的技术。但他们今天确实在与我们合作,正如他们在集体平台上运行的数千BP的数据和数百万分析程序所证明的那样!

本质上,通过参与用户和企业存储/管理/保护/控制/分析数据的用例,我们将继续蓬勃发展。随着“Hadoop已死”的说法重现又消退,我们会被误解,也愿意被误解一段时间——因为我们重视结果。所有伟大的公司都会时不时的被误解,坚持到最后就是胜利者。

Gartner分析师Merv Adrian喜欢讲述这样一个故事,一个客户说他最喜欢的“Hadoop应用程序”就是在S3中使用了带有Spark的Tensorflow。Merv问他为什么选择Hadoop,他回答是因为Hadoop团队创建了它。而且,使用的Spark来自Hadoop发行版。因此,Merv指出:“通常,旁人才能看出Hadoop的价值所在。”

CDP的基本目标是确保使用云服务能让企业更容易从平台获得价值,而无需处理技术的复杂性。尤其是,使用CDP提供的用于数据仓库和机器学习的本地SaaS式服务经验,使得业务用户能够轻松分析存储在云空间中的数据。此外,SDX使得使用ABAC和细粒度策略跨存储在对象存储和on-prem HDFS中的数据建立完全安全的数据湖变得非常简单,还提供了用于治理和加密(存储和在线)的来源和沿袭。在这方面取得的进展令人兴奋——正如从许多企业客户反馈中看到的那样!

那么,Hadoop已经死去了吗?

对Hadoop旧的认知已经过时了——尘埃落定。Hadoop作为一种理念,正在推动着开源技术生态系统和开放数据标准不断发展,使人们能够将数据转化为观点,这种理念是鲜活而持久的。

只要有数据,就会有Hadoop。

Hadoop的旧理念已死。Hadoop的新理念长青。