3

Hive で外部テーブルを作成しようとしていますが、次のエラーが発生し続けます。

create external table foobar (a STRING, b STRING) row format delimited fields terminated by "\t" stored as textfile location "/tmp/hive_test_1375711405.45852.txt";
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask (state=08S01,code=1)
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask (state=08S01,code=1)
Aborting command set because "force" is false and command failed: "create external table foobar (a STRING, b STRING) row format delimited fields terminated by "\t" stored as textfile location "/tmp/hive_test_1375711405.45852.txt";"

の内容は次の/tmp/hive_test_1375711405.45852.txtとおりです。

abc\tdef

beelineThrift を使用するコマンドライン インターフェイス経由で接続していますHiveServer2

システム:

  • Hadoop 2.0.0-cdh4.3.0
  • ハイブ 0.10.0-cdh4.3.0
  • ビーライン 0.10.0-cdh4.3.0
  • クライアント OS - Red Hat Enterprise Linux Server リリース 6.4 (サンティアゴ)
4

2 に答える 2

3

問題は、外部テーブルをディレクトリではなく HDFS 内のファイルに向けていたことです。不可解な Hive エラー メッセージには、本当に頭が下がりました。

解決策は、ディレクトリを作成し、そこにデータ ファイルを配置することです。上記の例でこれを修正するには、その下にディレクトリを作成して/tmp/foobar配置hive_test_1375711405.45852.txtします。次に、次のようにテーブルを作成します。

create external table foobar (a STRING, b STRING) row format delimited fields terminated by "\t" stored as textfile location "/tmp/foobar";
于 2013-08-06T01:25:44.420 に答える
-1

当社でも同様の問題に直面しました (Sentry、Hive、および kerberos の組み合わせ)。完全に定義されていない からすべての権限を削除することで解決しましたhdfs_url。たとえば、 に変更GRANT ALL ON URI '/user/test' TO ROLE test;しましたGRANT ALL ON URI 'hdfs-ha-name:///user/test' TO ROLE test;

特定の URI に対する権限は、Hive データベース (この場合は mysql) で確認できます。

于 2019-12-17T21:54:01.517 に答える