根据我对Hive概念的理解,如果我们将数据集加载到hive表中,数据文件将从源路径移动到HDFS中的hive仓库,并且HDFS被设置为三个数据副本。
这些问题可能看起来很愚蠢但是我是初学者,我想清楚我的怀疑。
我的问题是:
1)如果我删除了hive表,它是仅从hive仓库还是从HDFS的其他两个副本中删除数据文件?
2)如果我们正在处理hive表上的查询,那么查询是否会作为分布式处理完成? 按照说,一个数据文件的大小为1GB(实习生8个块x 128MB),因为我们有三个复制因子,这个文件总共有24个块可用 我们的hive查询是在所有数据块之间分配还是仅在hive仓库块上处理?
提前致谢..
答案 0 :(得分:0)
如果你做了#34;在路径中加载数据"从HDFS路径,数据将从源HDFS路径移动到目标HDFS路径, 如果您执行"在路径中加载数据",它不会将数据从本地移动到HDFS路径,而是复制
对于你的问题 如果删除HDFS中的文件,则会删除所有副本。
如果您有一个带有3个复制因子的1gb文件(8个块),当您在hive CLI中触发查询时,它会将您的查询转换为MR。它只处理8个块,如果触发的作业的datanode失败,它访问不同节点上的第二个副本并处理数据(推测执行)