HIVEのdrop table時のTable metadata not deleted since ~ is not writable エラー

hiveで、CREATE EXTERNAL TABLEで作成したテーブルを削除するときに、参照しているhdfsのディレクトリにwrite権限がないとエラーになる場合の対応方法のメモ。

まず、テーブル作成
hive> create external table tbl_test(col1 STRING, col2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION '/user/hdfs/data/';    ← ここにwrite権限がない
OK
Time taken: 1.821 seconds
で、削除してみる
hive> drop table tbl_test;
FAILED: Error in metadata: MetaException(message:Table metadata not deleted since hdfs://hdfs.cdh.com:8020/user/hdfs/data is not writable by user01)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

こういう場合は一旦、locationを自分のtmpフォルダなどに変更する。
hive> alter table tbl_test set location 'hdfs://hdfs.cdh.com:8020/user/user01/tmp/';
create時のpathはhdfsの/(ルート)からのパスを指定すればいいが、alter table set locationの場合は、hdfs urlで指定する。
(hdfs://hdfs.cdh.com は利用しているhadoopのサーバを指定)

で、その後削除。
hive> drop table tbl_test;
OK
Time taken: 0.254 seconds

と、思っていたら、CDH5.0.1に入っているHIVEのバージョンでは上記の問題が解決されている模様。

関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
https://nosource.blog.fc2.com/tb.php/111-14ad068c
この記事にトラックバック(FC2Blog User)

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm