我需要一个 AUTO_INCREMENT hadoop中的id。当我的reduce任务标识一个新项时,这些项需要分配一个唯一的id。如何在集群中共享原子计数器?报告器计数器似乎只是增量计数器,我看不到getandincrement特性。如何在作业的map/reduce阶段开始之前设置计数器?
AUTO_INCREMENT
7xzttuei1#
要执行分布式id生成,您可以只生成uuid,也可以使用apachezookeeper中的功能,后者可以在hadoop集群上进行分布式协调。免责声明:我从来没有使用过zookeeper,所以我不知道你是否真的能(甚至理论上)得到一个全局连续的ID集,这似乎就是问题所在。不过,生成uuid确实有成本;它们需要一些时间来产生。有关分布式id生成的一般信息,请参阅这个堆栈溢出问题。
1条答案
按热度按时间7xzttuei1#
要执行分布式id生成,您可以只生成uuid,也可以使用apachezookeeper中的功能,后者可以在hadoop集群上进行分布式协调。免责声明:我从来没有使用过zookeeper,所以我不知道你是否真的能(甚至理论上)得到一个全局连续的ID集,这似乎就是问题所在。
不过,生成uuid确实有成本;它们需要一些时间来产生。
有关分布式id生成的一般信息,请参阅这个堆栈溢出问题。