編集ログとHDFSの追記
以前、HDFSのfsimageとeditsの変更 | Tech Blogに書いたように、HDFSのeditsにはトランザクションが記録されます。
HDFSのappend(追記)機能を使って書き込んだ場合、editsの内容はどのように見えるのでしょうか?
のコードを利用させていただき検証しました。
サンプルコードの準備
上記のコードをコピーしてJavaのファイルを作成します。(ただ、パッケージ行のみコメントアウトしました)
Avroの準備
コードで使用しているFsInputはCDH4には含まれていないようなので、http://avro.apache.org/からソース一式をダウンロードします。
$ wget http://ftp.tsukuba.wide.ad.jp/software/apache/avro/stable/avro-src-1.7.4.tar.gz
$ tar xvf avro-src-1.7.4.tar.gz
$ cd avro-src-1.7.4
$ mvn package
$ javac -cp `hadoop classpath`:/home/training/work/avro-src-1.7.4/lang/java/mapred/target/avro-mapred-1.7.4.jar DFWAppendTest.java
$ java -cp `hadoop classpath`:/home/training/work/avro-src-1.7.4/lang/java/mapred/target/avro-mapred-1.7.4.jar:. DFWAppendTest
$
確認
hdfsのoevツールで表示します。
sudo -u hdfs hdfs oev -i /var/lib/hadoop-hdfs/cache/hdfs/dfs/name/current/edits_inprogress_0000000000000023404 -o /tmp/kawa2
下記の出力結果が追記に該当する部分です「OP_UPDATE_BLOCKS」というイベントが追記に関連しています。
(略)
[code]
[/code]
