为什么hive使用rdbms来存储metastore而不是文件系统?

wecizke3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(392)

我想了解将rdbms用于hive元数据而不是文件系统的设计原则
在我看来,rdbms提供了-
并发控制
酸性
亚秒延迟等。
文件系统可以提供-
数据复制
使用zookeeper可以实现并发
在Hive的设计过程中,还有什么影响这个决定的因素吗?

6tqwzwtp

6tqwzwtp1#

据我所知,他们选择这种在rdbms中存储配置单元表的元信息的方法,而不是将这些信息存储在hdfs中,因为他们需要元存储(模式、分区、其他信息)非常低的延迟。

xeufq47z

xeufq47z2#

您可以在本文中找到hive使用rdbms的原因:“hive:map-reduce框架上的仓库解决方案”。
其描述如下
“metastore的存储系统应该针对具有随机访问和更新的在线事务进行优化。像hdfs这样的文件系统并不适合,因为它优化了顺序扫描,而不是随机访问。因此,metastore使用传统的关系数据库(如mysql、oracle)或文件系统(如local、nfs、afs),而不是hdfs。因此,只访问元数据对象的hiveql语句的执行延迟非常低。但是,hive必须显式维护元数据和数据之间的一致性。”

jw5wzhpr

jw5wzhpr3#

使用rdbms存储元数据的原因:不可能执行crud操作,不允许编辑hdfs中存在的文件或数据,元数据使用rdbms存储元数据以提供较低的查询延迟,hdfs读/写操作是耗时的过程。

相关问题