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