2013-07-14 5 views
6

タブに区切られたファイルをバケットの下にあるこのタイプのフォルダでロードしました: バケット→se→y = 2013→m = 07 - > d = 14 - > h = 00タブからハイブテーブルを作成するs3でインタラクティブモードを使用してファイルを分割

各サブフォルダには、トラフィックの1時間を表す1つのファイルがあります。

次に、ハイブでインタラクティブモードで実行するためのEMRワークフローを作成しました。

私はマスターにログインし、ハイブに入るとき、私は、このコマンドを実行します。

CREATE EXTERNAL TABLE se (
id bigint, 
oc_date timestamp) 
partitioned by (y string, m string, d string, h string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
LOCATION 's3://bi_data'; 

私は、このエラーメッセージが出ます:

はFAILED:メタデータ内のエラー:java.lang.IllegalArgumentExceptionがしますバケット内にオブジェクトをリストするときは、 バケット名パラメータを指定する必要があります。

FAILED:実行エラー、 org.apache.hadoop.hive.qからの戻りコード1 l.exec.DDLTask

誰でも手助けできますか?

UPDATE私は唯一の文字列フィールドを使用しようとしても は、私は同じエラーを取得します。 文字列を持つテーブルを作成します。

CREATE EXTERNAL TABLE se (
id string, 
oc_date string) 
partitioned by (y string, m string, d string, h string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
LOCATION 's3://bi_data'; 

ハイブバージョン0.8.1.8

答えて

13

だから、解決策は、私は2つのミスがあったことである:

  1. あなたがすべき唯一のバケット名を書きますS3のパスにスラッシュが付きます。 参照here

  2. アンダースコアも問題です。バケット名はDNSに準拠する必要があります。

希望私はこれを持って誰かを助けました。

+0

ありがとう、あなた!これは私に頭痛を与えていた! – Rorchackh

+0

はい、ありがとうございます。下線は私に数時間を要した。 – msharp

関連する問題