2

当您连接分布在相同键上的表并在连接条件中使用这些键列时,netezza 中的每个 SPU(机器)都 100% 独立工作(参见nz-interview)。

在hive中,有bucketed map join,但是代表表的文件分配到datanode是HDFS的责任,不是按照hive CLUSTERED BY key来做的!

所以假设我有 2 个表,由相同的键聚集,并且我通过该键加入 - 配置单元可以从 HDFS 获得保证匹配的存储桶将位于同一个节点上吗?还是总是必须将小表的匹配桶移动到包含大表桶的数据节点?

谢谢,伊多

(注意:这是对我之前的问题的更好表述:hive/hadoop 如何确保每个映射器都适用于它的本地数据?

4

1 回答 1

0

我认为不可能告诉 HDFS 在哪里存储数据块。
我可以考虑以下技巧,这将适用于小型集群 - 将其中一个表的复制因子增加到接近或等于集群中节点数的数量。
结果 - 在连接过程中,适当的数据几乎总是(或总是)出现在所需的节点上。

于 2011-08-05T08:36:22.467 回答