我有一个4节点集群,我在所有节点中都安装了Hive(1个名称节点和3个数据节点)。
我正在访问名称节点。当我想要放置文件时会发生什么。内部名称节点和数据节点之间发生了什么?
同样,当我想通过数据节点放置文件时会发生什么?
我们在Hive中创建的表在哪里存储?
答案 0 :(得分:0)
我建议你看看this excellent comic on how HDFS works。为了改变现状:
有点复杂,但这就是协议的样子。
在Hive中创建表时,有关此表的元数据(列,SerDe,位置等)将进入Hive Metastore,它是所有Hive表的中央存储库。这个Metastore有几个后端,最常见的是Derby或MySQL,这是通过Hive配置中的属性javax.jdo.option.ConnectionURL
和javax.jdo.option.ConnectionDriverName
来控制的。最终,数据最终出现在由hive.metastore.warehouse.dir
控制的目录中的HDFS中,默认为/user/hive/warehouse
。