我有一个 4 节点集群,并且在所有节点中都安装了 Hive(1 个名称节点和 3 个数据节点)。
我正在访问名称节点。当我想放置一个文件时会发生什么。在内部,名称节点和数据节点之间发生了什么?
同样,当我想通过数据节点放置文件时会发生什么?
我们在 Hive 中创建的表存储在哪里?
我建议看看这部关于 HDFS 工作原理的优秀漫画。总结一下会发生什么:
有点复杂,但这就是协议的样子。
当您在 Hive 中创建表时,有关此表的元数据(列、SerDe、位置等)进入 Hive Metastore,这是所有 Hive 表的中央存储库。这个元存储有几个后端,最常见的是 Derby 或 MySQL,这通过属性javax.jdo.option.ConnectionURL
和javax.jdo.option.ConnectionDriverName
Hive 配置进行控制。最终数据在 HDFS 中的一个目录中结束,该目录hive.metastore.warehouse.dir
默认为/user/hive/warehouse
.