EMR(Hive)利用時における、S3上ファイルのLOAD処理について

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

EMR(Hive)利用時における、S3上ファイルのLOAD処理について

CkReal
初めまして、本間と申します。

現在、業務でEMRを使って、
以下の流れでログファイルの解析をしようと検討しています。
 1.S3上に各種ログファイルを集約
 2.EMRのHDFSへ取込
 3.解析結果をS3上のファイルに書込

上記の流れをHiveを使って、実現させようとした所、
2.のHDFSへの取り込み処理がうまくいかず、詰まってしまいました。

エラーログを見たところ、s3のファイルシステムはサポートしていないとのことですが、
下記の記載では、
「本サービスはジョブフローを Amazon EC2内で実行し、入出力データを Amazon S3 に保存します。」
と記載があるので、何らかの手順があるのではと認識しています。
http://aws.amazon.com/jp/elasticmapreduce/

お手数ですが、EMRからS3上のファイルを利用する上で、
必要な処理などあれば、どなたかご教示いただけないでしょうか。

以下、Interactiveモードで実行してみた所の実行ログです。
=================================
hive>
    > CREATE EXTERNAL TABLE test (
    >     id INT,
    >     name STRING
    >     )
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    > STORED AS TEXTFILE
    > location 's3://[バケット名]/test';
OK
Time taken: 0.229 seconds
hive> show tables;
OK
test
Time taken: 0.133 seconds
hive> LOAD DATA LOCAL INPATH "s3://[バケット名]/test.log" INTO TABLE test;
FAILED: Error in semantic analysis: line 1:23 Invalid Path "s3://[バケット名]/test.log": only "file" or "hdfs" file systems accepted. s3 file system is not supported.
Reply | Threaded
Open this post in threaded view
|

[JAWS-users 0379] Re: EMR(Hive)利用時における、S3上ファイルのLOAD処理について

CloudBB
本間さん

お疲れ様です。李です。
外部テーブルの場合、LOADは要りません。
普通のテーブルと同じように扱えます。

1.データファイルをS3においてください。複数のファイルで結構です。
s3://[バケット名]/test/test*.log

2.上記の格納先に対して外部テーブルを宣言します。
デリミターしっかりを合わせてください。

例)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

LINES TERMINATED BY '\n'


3.次は、SQL文を発行してみてください。
 select count(1) from table-name;とか


2011年9月23日14:29 CkReal <[hidden email]>:
初めまして、本間と申します。

現在、業務でEMRを使って、
以下の流れでログファイルの解析をしようと検討しています。
 1.S3上に各種ログファイルを集約
 2.EMRのHDFSへ取込
 3.解析結果をS3上のファイルに書込

上記の流れをHiveを使って、実現させようとした所、
2.のHDFSへの取り込み処理がうまくいかず、詰まってしまいました。

エラーログを見たところ、s3のファイルシステムはサポートしていないとのことですが、
下記の記載では、
「本サービスはジョブフローを Amazon EC2内で実行し、入出力データを Amazon S3 に保存します。」
と記載があるので、何らかの手順があるのではと認識しています。
http://aws.amazon.com/jp/elasticmapreduce/

お手数ですが、EMRからS3上のファイルを利用する上で、
必要な処理などあれば、どなたかご教示いただけないでしょうか。

以下、Interactiveモードで実行してみた所の実行ログです。
=================================
hive>
   > CREATE EXTERNAL TABLE test (
   >     id INT,
   >     name STRING
   >     )
   > ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
   > STORED AS TEXTFILE
   > location 's3://[バケット名]/test';
OK
Time taken: 0.229 seconds
hive> show tables;
OK
test
Time taken: 0.133 seconds
hive> LOAD DATA LOCAL INPATH "s3://[バケット名]/test.log" INTO TABLE test;
FAILED: Error in semantic analysis: line 1:23 Invalid Path
"s3://[バケット名]/test.log": only "file" or "hdfs" file systems accepted. s3
file system is not supported.


--
View this message in context: http://jaws-users.687672.n3.nabble.com/EMR-Hive-S3-LOAD-tp3360995p3360995.html
Sent from the jaws-users mailing list archive at Nabble.com.

_______________________________________________
JAWS-users mailing list
[hidden email]
http://jaws-ug.jp/mailman/listinfo/jaws-users


_______________________________________________
JAWS-users mailing list
[hidden email]
http://jaws-ug.jp/mailman/listinfo/jaws-users
Reply | Threaded
Open this post in threaded view
|

Re: [JAWS-users 0379] Re: EMR(Hive)利用時における、S3上ファイルのLOAD処理について

CkReal
李さん

お疲れ様です。本間です。
お忙しいなか、返信いただきありがとうございます。

李さんに教えていただいた手順で結果を取得することができ、
 3.解析結果をS3上のファイルに書込
まで動作確認をすることができました。
これから、実際のログファイルで色々テストを行なっていこうと思います。

情報ありがとうございました。