본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

hadoop terasort patitioner 소스 보기..

by 회색뿔 2013. 1. 15.


아래 코드는 hadoop의 tesasort의 구현에 포함되어 있는 partitioner의 getPartition method를 발췌한 내용이다. 

"aaa"를 입력으로 아래 소스를 수행하면 "0110 0001 0110 0001 0110 0001"가 되고 이 값을 reducesPerNode의 값으로 나눈 것이 반환 값이 되는 소스이다. 여기서 reducesPerNode의 값은 Job에서 수행되는 reduce의 갯수라고 한다. (Configure 객체의 메소드 호출 시 MRJobConfig.NUM_REDUCES 매개변수로 전달하여 값을 획득할 수 있다.)
prefix의 비트를 8bit shift 시키고 나서 bytes[0 - 2]의 내용을 0xFF(256(10), 1111 1111(2))와 | 연산 한 값을 prefix에 저장하는 코드이다. 이렇게 하여 리듀스를 수행할 테스크를 선택한다고....


	byte[] bytes = key.getBytes();
	int len = Math.min(3, key.getLength());
	int prefix = 0;
			
	for( int i = 0; i < len; ++i )
	{
		prefix = (prefix << 8) | (0xFF & bytes[i]);
	}
			
	return prefix / reducersPerNode;


정말인지는 확인해봐야 겠지...?!

'MISCELLANEOUSNESS' 카테고리의 다른 글

멀티리더기 오작동의 원인?  (0) 2013.01.19
java xml parsing.  (0) 2013.01.14
프로토콜 버퍼(Protocol Buffer) 설치.  (2) 2013.01.08