我需要在 hadoop 中等效于AUTO_INCREMENT
id 的 SQL。
当我的 reduce 任务识别出一个新项目时,这些项目需要分配一个唯一的 ID。
如何在集群中共享原子计数器?记者计数器似乎只是增量计数器,我没有看到 getAndIncrement 功能。
如何在作业的 map/reduce 阶段开始之前设置该计数器?
我需要在 hadoop 中等效于AUTO_INCREMENT
id 的 SQL。
当我的 reduce 任务识别出一个新项目时,这些项目需要分配一个唯一的 ID。
如何在集群中共享原子计数器?记者计数器似乎只是增量计数器,我没有看到 getAndIncrement 功能。
如何在作业的 map/reduce 阶段开始之前设置该计数器?
要执行分布式 id 生成,您可以只生成 uuid 或使用Apache Zookeeper中的功能,它可以在 Hadoop 集群上进行分布式协调。免责声明:我从未使用过 Zookeeper,所以我不知道您是否真的(甚至理论上)可以获得一组全局连续的 id,这似乎是问题所在。
但是,生成 UUID 确实有成本。它们需要一些时间来生成。
有关分布式 ID 生成的一般信息,请参阅此 Stack Overflow 问题。