Hiveで、HDFS上にファイルがあるにもかかわらず、FileNotFoundException

Hiveのクエリを実行するバッチが異常終了してしまう。

stderrのログにある、jobtrackerのページのURLをブラウザで開いて、そのページから、さらにFailedのリンクのページを開いて、Hadoopの、いくつかのDataNodeでFileNotFoundExceptionが発生していたことがわかった。

NameNodeの管理画面から、HDFS上のファイルを確認すると、ちゃんとファイルが存在している。

「おかしいなあ」と思っていたが、どうも、2つのバッチ(どちらもHiveのクエリを実行する)が、同じHiveテーブルを、同じタイミングで読み書きしていたことが判明。パーティションを日付やら、なにやらで、作成したテーブルだった。

ジョブの実行のタイミングをずらしたら、ちゃんと正常終了するようになった。