Hiveで、HDFS上にファイルがあるにもかかわらず、FileNotFoundException
Hiveのクエリを実行するバッチが異常終了してしまう。
stderrのログにある、jobtrackerのページのURLをブラウザで開いて、そのページから、さらにFailedのリンクのページを開いて、Hadoopの、いくつかのDataNodeでFileNotFoundExceptionが発生していたことがわかった。
NameNodeの管理画面から、HDFS上のファイルを確認すると、ちゃんとファイルが存在している。
「おかしいなあ」と思っていたが、どうも、2つのバッチ(どちらもHiveのクエリを実行する)が、同じHiveテーブルを、同じタイミングで読み書きしていたことが判明。パーティションを日付やら、なにやらで、作成したテーブルだった。
ジョブの実行のタイミングをずらしたら、ちゃんと正常終了するようになった。