写点什么

Hadoop 生态里,为什么 Hive 活下来了?

  • 2021-10-08
  • 本文字数:2299 字

    阅读完需:约 8 分钟

Hadoop 生态里,为什么 Hive 活下来了?

Apache Hive 能在下一轮“淘汰”中幸存下来吗?


Apache Hive 在 2010 年作为 Hadoop 生态系统的一部分崭露头角,当时 Hadoop 是一种新颖而创新的大数据分析方法。Hive 的功能就是实现 Hadoop 的 SQL 接口。它的架构包括两个主要服务:一是查询引擎:负责执行 SQL 语句;二是元存储:负责在 HDFS 中将数据收集虚拟化为表。



HDFS 上的 Hive 的主要组成部分,包括用户界面、驱动程序和元存储。


Hadoop 背后的概念是革命的。分布式文件系统(HDFS)中存储大量的数据集,运行于商业硬件集群之上。并行执行计算作业时使用 MapReduce 的数据。这类任务的分配由 Yarn 管理。主接口是一种编程语言,最初是 JavaScala


这些组件在 Apache 基金会下开源,可以免费使用。这套技术已经成为几年来大规模分析的标准。


但是,这个技术栈已经逐渐被一些新技术淘汰……


HDFS 被对象存储所取代,由 AWS S3 主导。MapReduce 已经被 Spark 所取代,Spark 也逐渐减少了对 Hadoop 的依赖性。Yarn 正在被像 Kubernetes 这样的技术取代。此外,Hive 的查询引擎组件在性能和采用方面已经被 Presto/Trino 超越。


虽然有这些改变,但大多数以数据湖为特色的组织仍然将活跃的 Hive Metastore 部署作为其架构的一部分。与 Hadoop 的同类产品相比,你可能会想,“Hive Metastore 有什么特别之处?”


要回答这个问题,让我们深入了解一下 Hive Metastore 目前提供了什么功能,以及正在出现什么技术来取代它。


Hive Metastore 做了什么?


在将新数据存入对象存储中时,我们会在 Hive Metastore 中注册一个元存储 API,该 API 来自于任何数据应用或编排工具。此生命性阶段将一组对象从对象存储重映射到 Hive 公开的表。部分注册包含指定文件中保存的表的模式,以及描述这些列的元数据。


以这种方式使用 Hive Metastore 有四个主要好处:虚拟化、可发现性、模式演化、性能。让我们来详细讨论一下。


虚拟化


数据分析师使用 SQL 通常不关心对象存储的细节和其访问模式。他们只是想要得到他们的表。


当其他 Hadoop 组件被取代时,Hive Metastore 将扮演不可替代的角色。每种新技术的引入都确保了对 Hive Metastore 的支持,从而避免了依赖于 Hive 中定义的表对象的关键分析工作流。


可发现性


当公开新数据并更新数据时,Hive Metastore 会变成包含在对象存储中的所有集合的目录。如果维护得当,就可以发现可供查询的数据集。


另外,补充性信息可以保存在元存储中,以便提供关于数据的有用信息,比如其更新频率,谁拥有它,等等。


模式演化


管理数据集所面临的挑战之一就是其可变性。在描述其属性的现有列时,记录可以随时间而改变。也有可能是属性集本身会随时间改变,从而导致表的模式发生改变。


上述的注册过程为每一个属于表的附加数据文件提供了模式的记录。这就是说,如果模式在某一时刻发生了变化,那么它将被记录到 Hive Metastore 中。在访问数据时,可以使用合适的模式进行访问。


这也为验证一个模式提供了一个很好的基础,如果它不应该被改变,并对它发出警报。Hive 保存着创建此类测试的信息。


性能


因为 Hive Metastore 将表映射到了底层对象上,所以它可以基于对象存储支持的主键来表示分区。当分区均衡且数量合理时,分区的粒度可以由用户设置,这种映射可以提高查询性能。


这通常被称为“分区修剪”(partition pruning),它允许查询引擎识别哪些数据文件可以被跳过。


Hive 会在下一次革命中幸存吗?


目前还没有直接取代元存储的候选者,但如果现有的一些趋势占据上风并发挥好作用,那么它可能会被淘汰。


让我们来看看领先的继任者们。


开放表格式


Iceberg、Hudi 和 Delta Lake 是这个类别中的三个参与者。每一个都是为了满足不同的需求而创建的,但是随着时间的推移,它们全部汇聚在一起,涵盖了一系列的特性。这些特性允许:


  • 可变性(Hudi、Delta)

  • 访问大表的效率(Iceberg)

  • 模式实施和演化(Delta)


由于 Hive Metastore 是一个所有应用程序都支持的通用接口,因此使用开放表格式的组织仍然依赖 Hive 来进行虚拟化,以及 / 或用于格式未涵盖的其他用例。


数据目录


在过去的一年多时间里,我们目睹了由数据工程领域的领导者发布的 10 多个开源发现工具的闪电战,这表明了对组织级数据目录的需求。这些新来者加入了其他现有的商业数据目录产品,如 Allation。


目录支持对象存储与目前使用的大多数数据库的映射。如有可能,许多发现工具将利用已经在 Hive Metastore 中的数据,否则就会进入对象存储。毫不奇怪,随着时间的推移,这些工具很有可能取代 Hive Metastore 的编目功能。


可观察性工具


可观察性工具的主要目的是在运行中监控数据管道的质量和数据本身。一些工具专注于前者(如 Databand),而另一些工具侧重于后者(Great Expectations 或 Monte Carlo)。如果可观察性工具在整个数据生命周期内实施,它可以动态地更新数据目录,并将 Hive Metastore 替换为目录。


结  语


许多技术已经开始在改进 Hive 的功能方面有所突破。但是现在还没有任何一种技术足够成熟,也没有就成功去除 Hive Metastore 的组合达成共识。


这并不意味着它应该或将继续成为数据架构的一部分。实际上,它在可用性和性能方面都存在着明显的不足。值得关注的是 Hive Metastore:


  • 难以安装和维护。

  • 非云原生架构,使得管理服务的实施变得复杂。

  • 因依赖关系型数据库而受到可扩展性限制。


综合这些因素,我们可以预测 Hive Metastore 不会在下一个数据架构的演进中幸存下来。这种情况不会自动发生——它需要来自社区内部的力量。愿你与我们携手共创美好未来!


作者介绍:


Einat Orr 博士,Treeverse 合伙创始人兼 CEO,lakeFS 合伙创始人。


原文链接:


https://lakefs.io/hive-metastore-why-its-still-here-and-what-can-replace-it/


2021-10-08 19:088630

评论

发布
暂无评论
发现更多内容

leetcode 155. Min Stack最小栈(中等)

okokabcd

LeetCode 数据结构与算法 栈和队列

Docker到底是什么,能干什么?这一篇文章全部给你解释清楚了

Java永远的神

Java Docker 程序员 面试 云原生

国产堡垒机品牌哪家好?功能有哪些?咨询电话多少?

行云管家

运维 堡垒机 运维审计 国产堡垒机 堡垒机品牌

设计一个跨平台的即时通讯系统(采用华为云ECS服务器作为服务端 )【华为云至简致远】

IT资讯搬运工

云服务器ECS

开源一夏 | 自己画一块ESP32-C3 的开发板(PCB到手)

矜辰所致

开源 硬件设计 8月月更 ESP32-C3

游戏开发常遇到数据一致性BUG,怎么解?

华为云开发者联盟

数据库 后端 游戏开发

有了国产 DevOps 工具 ,还怕数字化转型成本高?

飞算JavaAI开发助手

基于微信小程序的幼儿园招生报名系统开发笔记

CC同学

SpringMVC(一、快速入门)

开源 springmvc 8月月更

从零开始,如何拥有自己的博客网站【华为云至简致远】

IT资讯搬运工

linux 文件权限控制

大数据培训课程哪个好呢?

小谷哥

华为云弹性云服务器ECS使用【华为云至简致远】

IT资讯搬运工

弹性云服务器ECS

兆骑科创赛事服务平台对接,海内外高层次人才引进

兆骑科创凤阁

跟我一起了解云耀云服务器HECS【华为云至简致远】

IT资讯搬运工

云服务器

【Redis】位图以及位图的使用场景(统计在线人数和用户在线状态)

石臻臻的杂货铺

redis' 8月月更

IT故障快速解决就用行云管家!快速安全!

行云管家

运维 IT运维 行云管家

Arco Vue + Flask 手把手实战开发一测试需求平台

MegaQi

测试平台开发教程 签约计划第三季 8月月更

面试官:Redis 大 key 要如何处理?

Java永远的神

Java 数据库 redis 程序员 面试

再迎巅峰!阿里爆款分布式小册开源5天Github已73K

冉然学Java

架构 分布式 微服务 java; 编程、

什么是低代码开发?大家都真的看好低代码开发吗?

优秀

低代码开发

直播卖货APP——为何能得到商家和用户的喜欢?

开源直播系统源码

软件开发 语聊房 直播系统 直播源码

客户案例 | 提高银行信用卡客户贡献率

易观分析

金融 银行 分析 客户

优雅地实时检测和更新 Web 应用

领创集团Advance Intelligence Group

Web Web应用

赶紧收藏!!!我直接上瘾!百万人都在学的Docker

指剑

签约计划第三季 8月月更

C++面向对象友元,全局函数、类、成员函数做友元

CtrlX

8月月更

看到这个应用上下线方式,不禁感叹:优雅,太优雅了!

华为云开发者联盟

云计算 开发 CCE

【Redis】redis安装与客户端redis-cli的使用(批量操作)

石臻臻的杂货铺

redis' 8月月更

电商秒杀系统架构设计

泋清

#架构训练营

兆骑科创创业赛事活动举办平台,投融资对接,线上直播路演

兆骑科创凤阁

开源一夏 | 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器

海拥(haiyong.site)

JavaScript 开源 前端 8月月更

Hadoop 生态里,为什么 Hive 活下来了?_架构_Einat Orr 博士_InfoQ精选文章