2012-10-27 4 views
3

hadoop에서 ID가 AUTO_INCREMENT 인 SQL이 필요합니다.Hadoop : 자동 증가 ID를 만드는 방법

내 reduce 작업이 새 항목을 식별 할 때 해당 항목에 고유 한 ID가 할당되어 있어야합니다.

  • 클러스터에서 원자 카운터를 공유하려면 어떻게해야합니까? 리포터 카운터는 카운터가 증가하는 것처럼 보입니다. 내가 보는 getAndIncrement 기능은 없습니다.

  • 작업의 매핑/축소 단계 전에 어떻게 카운터를 설정할 수 있습니까?

+2

[Distributed sequence number generation?] (http://stackoverflow.com/questions/2671858/distributed-sequence-number-generation) –

답변

2

당신이 중 단지 하둡 클러스터에 조정을 분산 할 수 Apache Zookeeper에서 발견 기능을 UUID를 생성하거나 사용할 수 있습니다 분산 ID 생성을 수행합니다. 면책 조항 : 나는 사육사를 한 번도 사용하지 않았으므로 이론적으로 (심지어 이론적으로) ID 번호가 인 것처럼 보이는 전역 연속 ID를 얻을 수 있는지 여부는 알 수 없습니다.

생성 UUID에는 비용이 들지만, 그들은 생성하는데 약간의 시간이 걸린다.

분산 ID 생성에 대한 일반적인 정보는 this StackOverflow question을 참조하십시오.

+0

예 가능한 고유 한 범위 내에서 ID를 증가시켜야합니다. . –

+0

나는 그것이 당신이 원하는 것이라고 생각했습니다. 사육사를 확인해보십시오. 내가 hadoop으로 많은 일을 해내는 동안, 저는 글로벌 원자량으로 구축하려는 생각이 이상하게 보였기 때문에 항상 UUID를 생성했습니다. 1,000 노드 클러스터에서 999 대의 머신을 기다리고 싶습니까? 진지하게, 나는 사육사 사람들이 이것을 모두 알아 냈다고 생각하지만 다루기가 어렵다. 원하는 것을 얻을 수 없다면지도 단계에서 uuids를 생성 한 다음 감축 단계에서 인접한 세트를 만들거나 MR 작업이 완료된 후 별도의 순차적 인 프로세스로 만듭니다. –

관련 문제