我想了解使用RDBMS进行Hive元数据而非文件系统的设计原则
从我的角度来看,RDBMS正在提供 -
并发控制
ACID属性
亚秒级延迟等
文件系统可以提供 -
复制数据
使用Zookeeper
可以实现并发在Hive的设计过程中影响这个决定的任何其他事情?
答案 0 :(得分:2)
你可以找到hive在文章中使用RDBMS的原因:" Hive:一个关于map-reduce框架的仓储解决方案"。
它描述如下
"应优化Metastore的存储系统 用于随机访问和更新的在线交易。 像HDFS这样的文件系统不适合,因为它已经过优化 用于顺序扫描而不用于随机访问。所以 Metastore使用传统的关系数据库(如 MySQL,Oracle)或文件系统(如本地,NFS,AFS)和 不是HDFS。因此,只能访问的HiveQL语句 元数据对象以非常低的延迟执行。然而, Hive必须明确保持之间的一致性 元数据和数据。"
答案 1 :(得分:0)
据我所知,他们选择在RDBMS 中存储hive表的元信息的方法,而不是将这些信息存储在hdfs中,因为他们需要Meta存储(模式,分区,其他信息) )延迟非常低。
答案 2 :(得分:0)
使用RDBMS存储元数据的原因: 无法进行CRUD操作, 不允许编辑HDFS中存在的文件或数据, 元数据使用RDBMS存储元数据以提供低查询延迟, HDFS读/写操作是一个非常耗时的过程。