Apache CassandraでJavaからのデータアクセスは一通り試したので、次の目標であるHadoopへ。
Cassandraは0.6からHadoopに対応したとのことで、ソースのアーカイブのcontrib/word_countにWordCountのサンプルが入っている。(やはりHadoopのサンプルと言えばWordCountなのか(笑))
WordCountSetupはデータを準備するプログラムらしいが、実行するとUnavailableExceptionが発生するので、とりあえず断念。CLIから手動でデータを適当に登録して、WordCountを実行してみた。
こちらはまぁ動いたのだが、なぜか一部のデータが二重にカウントされる…!
どうやらデータを一通り読み込んだ後、末尾のデータを除いてもう一度読み込みを行っているようだ。
ColumnFamilyRecordReaderの中のget_range_slices()が返すデータがソートされていない事に起因している気がする。
ちょっと調べてみると、さすがに既にバグとして挙がっているようだ(苦笑)
Cassandra0.6.2で対応されるのかな?
しばらく待ちだな…。