Hadoop 0.17 유감
- Posted at 2008/08/05 10:24
- Filed under project/lucene_hadoop
Hadoop이 0.17로 버전업 되면서 몇가지 하위 버전과의 호환성에서 문제가 발생하고 있습니다.
가장 큰 문제는 FileSystem에서 listPath() 메소드 자체가 없어져서 기존 코드는 컴파일 에러가 발생하고 있습니다. listStatus()로 변경해 주어야 하고 return 타입도 Path[]가 아닌 FileStatus[] 입니다. 하위 버전 호환을 위해서라도 반드시 남겨 놓아야 하지 않았나 생각합니다. 단순히 해당 메소드를 사용하는 몇군데만 수정하면 되지 않냐하겠지만 HBase 등을 사용하게 되면 복잡한 문제가 발생합니다.
예를 들어 HBase는 현재 0.17 기준으로 만들어 지고 있습니다. Hadoop이 0.16에서 운영되고 있는 경우라면 HBase를 위해서 어쩔수 없이 0.17로 업그레이드를 해야 합니다. 이런 T.T
또 다른 문제는 타입 체크를 엄격하게 적용했다는 것입니다. map, reduce, RecordReader 등의 클래스에서 제네릭을 이용하여 타입을 엄격하게 처리하고 있습니다. 0.16대에서 map(WritableComparable key, Writable value ...) 이런 코드를 모두
map(WritableComparable<Text> key, Writable<Text> value ...) 의 형태로 변경해야 합니다.
가장 큰 문제는 FileSystem에서 listPath() 메소드 자체가 없어져서 기존 코드는 컴파일 에러가 발생하고 있습니다. listStatus()로 변경해 주어야 하고 return 타입도 Path[]가 아닌 FileStatus[] 입니다. 하위 버전 호환을 위해서라도 반드시 남겨 놓아야 하지 않았나 생각합니다. 단순히 해당 메소드를 사용하는 몇군데만 수정하면 되지 않냐하겠지만 HBase 등을 사용하게 되면 복잡한 문제가 발생합니다.
예를 들어 HBase는 현재 0.17 기준으로 만들어 지고 있습니다. Hadoop이 0.16에서 운영되고 있는 경우라면 HBase를 위해서 어쩔수 없이 0.17로 업그레이드를 해야 합니다. 이런 T.T
또 다른 문제는 타입 체크를 엄격하게 적용했다는 것입니다. map, reduce, RecordReader 등의 클래스에서 제네릭을 이용하여 타입을 엄격하게 처리하고 있습니다. 0.16대에서 map(WritableComparable key, Writable value ...) 이런 코드를 모두
map(WritableComparable<Text> key, Writable<Text> value ...) 의 형태로 변경해야 합니다.
Posted by 김형준
- Response
- No Trackback , 3 Comments
Trackback URL : http://www.jaso.co.kr/trackback/276
Comments List
-
hbase 도 0.1.3 -> 0.2.0 에서 client API가 꽤 바뀝니다. 언제든 바뀌긴 해야 했지만..
-
ㅋㅋ 클라이언트가 많으면 골아프군요. 그나저나 HBase 2.0이 나온건가...
-
제가 좀 봤는데 속도는 많이 좋아졌습니다.
단지 서버가 죽었을때 일부 데이터 유실이 발생할 수 있다는 문제는 여전하네요
-






