HBase 0.89.20100621の調査の続き。今度はHadoop関連のmapreduceパッケージのクラス。
いろいろクラスが追加されているけれども、プログラマーにとって一番大きいのはMultiTableOutputFormatかな。
TableOutputFormatは最初にjob(conf)に対してテーブル名をセットしておくので、1つのテーブルしか更新できない。
MultiTableOutputFormatは出力キーにテーブル名を出力するので、複数のテーブルが更新できる。
それと、TableRecordReader(TableRecordReaderImpl)がTableInputFormat(TableInputFormatBase)の内部クラスからトップレベルのクラスに外出しになったので、これを使っていた人には影響大。
他に追加されたPutSortReducer・SimpleTotalOrderPartitionerはHFileOutputFormatによるバルクロード(ってHBaseでも言うのかな?)に関連したクラス。
ちなみに、PutSortReducerやKeyValueSortReducerの中で使っているローカル変数indexには、何の意味があるんだろう? インクリメントしてるんだったら分かるんだが…。
廃止されたクラスは、Apache Lucene(ルシーン)に関連したクラスのようだ。
クラス名に「Index」って付いていたけれども、テーブルの索引じゃなくてLucene用の索引のことらしいから、まぎらわしかったよね(苦笑)
今回HBase用にWordCountのプログラムを書いてみたけれど、WordCountってデータの準備が楽だなー。違和感のある例だと思っていたけれども、意外といい題材なのかもしれない。