当我创建一个HIVE表时,是否在Hadoop集群的所有节点上创建了表?当我将数据加载到表中时,数据是否会在所有这些节点上复制?
我的猜测是肯定的?
答案 0 :(得分:0)
Hive只是null
之上的元数据层。因此,要回答您的问题,您只需要考虑复制如何在hdfs
内工作。
关于“在每个节点上”的问题并不是hdfs
复制如何工作的正确心理模型。 hdfs
复制完全了解/关心hive表。它只知道数据块。
hive表的每个数据块都有K个副本 - 其中k是为给定配置单元表配置的复制因子。数据块与特定节点的关联由hdfs的本地/机架/集群位置策略驱动。
答案 1 :(得分:0)
当我创建一个HIVE表时,表是否会在所有节点上创建 Hadoop集群?
否强> Hadoop数据节点不彼此的镜像。这些只是数据存储单元,其存储和元由NameNode管理。
您的hive表将根据复制因子集进行复制。如果复制因子为1,则只有一个副本。
当我将数据加载到表中时,数据是否会被复制 跨所有这些节点?
否强> 正如我之前指出的那样,hadoop datanode不是彼此的镜像,因此它们都不包含所有数据。它们只包含群集中已定义数量的数据副本(基于复制因子集)。
您加载的数据会根据复制因子(在NameNode决定的节点上)进行复制。