HIVEのdrop table時のTable metadata not deleted since ~ is not writable エラー
- Mon
- 23:31
- hadoop関連
hiveで、CREATE EXTERNAL TABLEで作成したテーブルを削除するときに、参照しているhdfsのディレクトリにwrite権限がないとエラーになる場合の対応方法のメモ。
まず、テーブル作成
こういう場合は一旦、locationを自分のtmpフォルダなどに変更する。
(hdfs://hdfs.cdh.com は利用しているhadoopのサーバを指定)
で、その後削除。
と、思っていたら、CDH5.0.1に入っているHIVEのバージョンでは上記の問題が解決されている模様。
まず、テーブル作成
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のバージョンでは上記の問題が解決されている模様。
- 関連記事
-
- Hiveのユーザ変数はhiveconfとhivevar、どちらを使うのが良い?
- Hadoopのworkflow(JOB管理)
- [HBase] hbase shellのhistory設定
- HIVEのdrop table時のTable metadata not deleted since ~ is not writable エラー
Comment
Trackback
- URL
- https://nosource.blog.fc2.com/tb.php/111-14ad068c
- この記事にトラックバック(FC2Blog User)