EMR でS3の「整合性のあるビュー」のエラー
EMRいじってたら、なんかこんなエラーが出るようになってしまった。
com.amazon.ws.emr.hadoop.fs.consistency.exception.ConsistencyException: Directory '[some path]' present in the metadata but not s3
どうも、EMRFSの整合性のあるビューの対象になっているオブジェクトをS3で消してしまうと不整合が生じてしまうらしい…
EMRFS で追跡されるオブジェクト - Amazon Elastic MapReduce
復旧するには emrfs cli の sync コマンドを使えば良い。
EMRFS CLI リファレンス - Amazon Elastic MapReduce
emrfs sync s3://[bucket]
ディレクトリを消してしまった場合は、同じ名前でまた作成するとエラーが出なくなるようだが、sycn コマンドを使うほうがよいのだろう。
…と思ったら、sync コマンド打ってもまだエラーが出る…
結局、
emrfs delete-metadata emrfs create-metadata -r 25 -w 25 emrfs sync s3://[bucket]
とやってメタデータを作りなおしたらようやく治った…
(なお、dynamo のスループット容量は無料枠に収まるように25に設定。)
emrfs delete で同期できてない部分だけメタデータから消してみたが、何故か治らなかった。上記の通り、メタデータ全体を作りなおすと解消した。