AWS
S3
hive
EMR

Hive(EMR)+S3でMoving data to... Failed with exception Unable to move source s3...が出る場合の対処

More than 1 year has passed since last update.

ちゃんとログ見ればすぐ気づくことだったけど…

EMRでHadoop+Hive。

CREATE TABLE [[テーブル名]] STORED AS ORC location 's3://[[s3パス]]' TBLPROPERTIES('EXTERNAL'='TRUE', 'orc.compress'='zlib') AS SELECT * FROM [[テーブル名]]
Moving data to directory s3://[[s3パス]]
Failed with exception Unable to move source s3://[[s3パス]]/hoge/fuga...

INSERT INTO テーブル名 SELECT...

は通るのになんでやねん。と思ってたら。

No Such File or Dir s3://[[s3パス]]/hoge

えっ

まさかと思い手動でhogeオブジェクトをs3上に作成。
通るようになりました。

s3のputとかはオブジェクトまでのパスがなくても勝手に作ってくれるからそこを疑いもしなかったのと、EMR上でのHiveの詳細なログがターミナルで操作した場合どこに吐かれるのかわからんかったせいでドハマりした。

最終的には全く別チームが作っていたEMRにjdbc接続して(HiveServer2)HQL投げるって機構があったおかげで、/mnt/var/log/hive/hiveserer2.logにバックトレースが吐かれたので気づけた。
ターミナルからやるとここに吐かれないからわからないんだよね… どっかに吐かれるのかなあ