apachecrunch ptable值在内部是如何工作的

vulvrdjw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(428)

我正在阅读一些与hdfs体系结构和apachecrunch ptable相关的文档。根据我的理解,当我们生成ptable时,数据是跨hdfs中的数据节点内部存储的。
这意味着,如果我能接受 <K1,V1>,<K2,V2>,<K1,V3>,<K3,V4>,<K2,V5> 以及hdfs中的两个数据节点d1和d2。假设每个数据节点有能力容纳3对。所以d1会保持 <K1,V1>,<K2,V2>,<K1,V3> d2将保持 <K3,V4>,<K2,V5> .
如果我在这个ptable上收集值,我将在内部运行另一个map reduce作业,从ptable获取这些值并生成 <K,Collection<V>> . 所以最后我会, <K1,Collection<V1,V3>>, <K2,Collection<V2,V5>> and <K3,Collection<V4>> . 同样,这些对将被分配到不同的数据节点。
现在,我有一个疑问,如何收集价值观 (V1,V3 of K1) 是否存储在生成的ptable中?这些数据是否也会分布在节点上,即
v1必须存储在d1中
v3必须存储在d2中
或者,v1和v3将只存储在一个节点中。
如果一个键的所有收集值都存储在一个节点中(不是分布式的),那么对于大型数据集,对每个键的收集值的处理是否会变慢?

piv4azn7

piv4azn71#

同一个键的所有值都将位于一个节点中。一般来说,这是map reduce的概念,而不是crunch的概念。理由是你希望所有的项目都在一个地方-这就是你想要实现的本地化。

相关问题