vlambda博客
学习文章列表

读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?

读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?

作者 | Monte Zweben

译者 | 天道酬勤,责编 | Carol

封图 | CSDN 付费下载自视觉中国

Apache Hadoop于2006年出现在IT领域,它使用商品硬件,为组织提供前所未有的数据量存储能力。不仅解决了数据集的大小问题,还解决了数据类型问题,比如由物联网设备、传感器、服务器和社交媒体生成的数据,企业对这些数据的分析越来越感兴趣。数据量、速度和多样性的结合被普遍称为大数据。

读取模式在Hadoop的普及中起着至关重要的作用。企业认为他们不必再担心定义哪些表包含哪些数据以及它们是如何相互连接的繁琐过程了—这个过程花了几个月的时间,而且在完成之前无需执行任何数据仓库查询。在这个发展的新世界里,企业在基于Hadoop的存储库(称为数据湖)中存储尽可能多的数据,并担心以后如何对其进行分析。

企业开始出现数据湖。这些数据湖由商业大数据分发支持的——平台中支持许多独立的开源计算引擎,这些引擎使数据湖以不同方式分析数据。最重要的是,所有这些都是开源的,可以免费试用!不过,用起来会出现什么问题?今天一起来看看。


读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?

读取模式是错误的


被誉为Hadoop优势的特性被证明是其致命弱点。首先,随着写模式限制的解除,TB级的结构化和非结构化数据开始流入数据湖。由于Hadoop的数据治理框架和功能仍在定义中,企业难以确定其数据湖的内容和数据沿袭。

另外,数据还没有准备好。企业对数据湖中的数据失去信心,慢慢地,这些数据湖开始变成数据沼泽。读取模式的“构建它,它们就会到来”的哲学失败了。


读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?

Hadoop复杂性和管道式的计算引擎


其次,Hadoop发行版提供了许多开源计算引擎,例如Apache Hive,Apache Spark和Apache Kafka,仅举几例,但这证明是一件好事。一个恰当的例子—一个商业Hadoop平台由26个这样的独立引擎组成。这些计算引擎操作起来很复杂,需要专门的技术才能将他们连接在一起,这在市场上很难找到。


读取模式错误、计算引擎操作复杂:这些Hadoop问题该如何应对?

错误的焦点:数据湖与应用程序


第三个也是最重要的一个,由于企业优先考虑将所有企业数据存储在一个中心位置,所有开发人员都可以使用这些数据——一个数据仓库,不考虑应用程序如何使用数据,数据湖项目就开始失败了。

因此,Hadoop集群常常成为企业数据管道的网关,这些数据管道过滤、处理和转换数据,然后导出到其他数据库和数据集市,用于下游报告,并且几乎永远无法在操作架构中找到通往真实业务应用程序的方式。

数据湖最终变成了一组巨大的完全不同的计算引擎,它们在完全不同的工作负载上运行,共享相同的存储,这很难管理。这个生态系统中的资源隔离和管理工具正在改善,但它们仍有很长的路要走。所有这些复杂性——只是为了报告。

大多数情况下,企业无法将重点从使用数据湖作为廉价的数据存储库和处理管道转移到使用数据并支持关键任务应用程序的平台。例如,Apache Hive和Apache Spark是Hadoop数据湖中使用最广泛的计算引擎。这两种引擎都用于分析目的——处理类似SQL的查询(Hive)或执行类似SQL的数据转换并构建预测模型(Spark)。这些数据湖实现对于如何在应用程序中使用数据不够关注。


未来的战略


如果你关心Hadoop生态系统的最新发展,在证明数据湖的价值方面面临越来越大的压力,那么你应该首先关注操作应用程序,然后再回到数据。

通过关注具有数据和智能的应用程序的现代化,你最终获得能够利用数据根据经验预测未来可能发生的事情的应用程序,并能够积极主动地做出决策,从而产生卓越的业务结果。以下是成功的应用程序现代化策略的五个要素:

(1) 选择一个现代化的应用程序:首先,选择一个你想要现代化的应用程序,而不是集中精力在数据上。最适合的解决方案是是许多在市场上落后的定制应用程序之一,这些应用程序需要变得更加敏捷、智能和数据驱动。一旦确定了可以为你带来竞争优势的应用程序,你就可以集中精力采购支持该应用程序所需的数据,以及是否可以从数据湖中获取该数据。

(2) 使用横向扩展SQL进行应用程序现代化:多年来,SQL一直是企业工作负载中的主力军,在你组织中有数百名开发人员,业务分析师和IT人员完全熟悉SQL。不会因为将原始SQL应用程序重写为低级NOSQL API而产生额外的时间、费用和风险。选择一个平台,使你能够维护SQL的熟悉的模式和强大的功能,使应用程序现代化,但是要在一个能够在廉价的基础设施上弹性地向外扩展的架构上实现。横向扩展使整个群集具有强大的计算能力,使其比在集中式系统上运行的旧SQL系统快得多。通过横向扩展,你还可以添加更多容量,并随着工作负载的变化而减少容量。

(3)采用ACID平台:ACID遵从性是一种机制,通过该机制事务可以维护数据库中的完整性,并允许用户执行诸如提交和回滚等操作。对于操作应用程序来说,这是一项至关重要的功能,它可以确保数据库在发出提交之前,不会使更改对其他人可见。选择在数据库中的各个事务级别上提供ACID功能的平台。否则,所有这些一致性后果都需要在应用程序代码中处理。所有传统的SQL系统都兼容ACID。数据湖不满足这一点,使得应用程序难以编写。

(4) 结合分析:根据Gartner最近的一篇博客,在过去有充分的理由将IT基础架构分为操作(OLTP)和分析(OLAP)组件,但现在不再如此。ETL用延迟扼杀了我们的SLA。以前,操作和分析工作负载会相互干扰,必须将它们分开。此外,旧数据平台的性能非常差,我们必须将操作方案转换为更适合分析工作负载的星型方案或雪花型方案。ETL不再是必须的,你可以经常使用操作模式在操作平台上运行分析。通过实现这个平台,确保你的应用程序在一个平台上运行,该平台能够最大程度地减少数据移动并且不会增加应用程序的延迟。与昨天或上周的数据相比,它提供了你当前的见解,报告和仪表盘。

(5) 嵌入本机机器学习:应用程序现代化的主要原因之一是将AI和ML注入应用程序中,使它从经验中学习,动态地适应变化并及时做出决策。为了使你的应用程序智能化,选择一个在数据库级别内置了机器学习功能的平台是至关重要的,这样更新的数据可供模型进行实验,训练和执行。

这与迄今为止使用的数据湖完全不同。这种方法通过目前可以利用数据湖的应用程序,更快地为业务线提供了切实的商业价值。

这种方法将确保除了为你的业务提供竞争优势的应用程序现代化之外,还可以保留在数据湖中的投资。

原文链接:https://hackernoon.com/what-happened-to-hadoop-what-should-you-do-now-3i1i3v6r

本文为 CSDN 翻译,转载请注明出处。

更多精彩推荐

你点的每个“在看”,我都认真当成了喜欢