1

私のユースケース:

EC2からSQOOPを介してHiveに大きなデータをインポートしたいと思います。Hiveにインポートされたデータは、いくつかのアルゴリズムを適用することによってHiveで処理され、いくつかの結果を生成します(テーブル形式、Hiveのみ)。また、生成された結果は、SQOOPのみを介してEc2に再度エクスポートされます。

私はアマゾンウェブサービスを初めて使用し、AWSEMRを使用してこのユースケースを実装したいと考えています。ローカルマシンに実装しました。

インスタンスを起動するためのAWSEMRに関連するリンク、EMRとは何か、動作方法などについて読んだことがあります。

私はEMRについて次のような疑問を持っています:

1)EMRは、入力データと出力データのHadoop処理(オブジェクトの形式)を保持するS3バケットを使用します。---> S3でオブジェクトの形式でデータを保存する方法を取得できませんでした(私のデータはファイルになります)

2)すでに述べたように、Javaでユースケースのタスクを実装しました。したがって、プログラムのJARを作成し、カスタムJARを使用してジョブフローを作成するとします。このように実装することは可能ですか、それともそのために何か特別なことをする必要がありますか?

3)ユースケースで述べたように、SQOOPを使用して結果をEc2にエクスポートし直したいと思います。EMRはSQOOPをサポートしていますか?

--編集パート4)また、SQL Serverのデータは毎日/毎週更新されるため、SQLServerから毎日/毎週データをインポートします。そのデータをS3にインポートして、Hiveに渡すとしたら、どうすればよいですか?(HiveはデータをHDFSの/ user / hive / Warehouseディレクトリに保存するため)。HDFSのS3および/user/ hive/warehouseディレクトリにリンクするにはどうすればよいですか。

できるだけ早くあなたの答えを私に返信してください。できるだけ早くこれをやりたいです。

どうもありがとう。

4

3 に答える 3

5

AWSEMRにSqoopをインストールすることが可能です。ファイルを保存するためにS3を使用する必要はなく、代わりにローカル(一時)HDFSを使用できます。Sqoopをインストールしたら、Sqoopを使用してデータをHDFSにインポートし、HDFSで計算を実行してから、Sqoopを使用してデータをエクスポートし直すことができます。

AWSEMRにSqoopをインストールする方法について書いた記事は次のとおりです。http: //blog.kylemulka.com/2012/04/how-to-install-sqoop-on-amazon-elastic-map-reduce-emr/

于 2012-04-24T02:35:29.677 に答える
2

Hiveメーリングリストからの私の応答と同じ:

あなたの質問に答えるには:

1)S3の用語では「オブジェクト」という単語が使用されており、その理由は十分にあると思いますが、私たちHive'ersにとって、S3オブジェクトはS3に保存されているファイルと同じです。ファイルへの完全なパスは、AmazonがS3「キー」と呼ぶものであり、対応する値はファイルのコンテンツになります。たとえば、s3://my_bucket/tables/log.txtがキーであり、ファイルの実際のコンテンツになります。 S3オブジェクトになります。AWS Webコンソールを使用してバケットを作成し、S3cmd(http://s3tools.org/s3cmd)などのツールを使用してデータをS3に配置できます。

ただし、必ずしもS3を使用する必要はありません。S3は通常、データを永続的に保存する場合にのみ使用されます。ほとんどの人は、入力ログ/ファイルをHive処理のためにS3に保存し、最終的な集計と結果を将来の取得のためにS3に保存します。一部のデータを一時的にHiveにロードし、処理してエクスポートする場合は、S3について心配する必要はありません。クラスタを形成するノードには、HDFSを形成するエフェメラルストレージがあります。あなたはそれを使うことができます。唯一の副作用は、クラスターを終了すると、HDFSのすべてのデータが失われることです。それでよければ、S3について心配する必要はありません。

EMRインスタンスは基本的にEC2インスタンスであり、いくつかの追加セットアップが行われます。EC2インスタンスとEMRインスタンス間でのデータの転送は簡単なはずだと思います。データがEBSボリュームに存在する場合は、同じEBSボリュームをEMRインスタンスにマウントするEMRブートストラップアクションを追加することを検討できます。しかし、すべての派手な取り付けビジネスなしでそれを行うことができれば、それはより簡単かもしれません。

また、Amazonデータセンター間でのデータ転送にはコストがかかる可能性があることに注意してください。可能であれば、S3バケット、EMRクラスター、EC2インスタンスを同じリージョンに保持することをお勧めします。同じ地域内では、追加の転送費用は発生しないはずです。

2)ええ、EMRはカスタムjarをサポートしています。クラスターの作成時に指定できます。これは、ローカルクラスターをインストールしたものとEMRにインストールしたものと同じ(十分に近い)HadoopとHiveで実行されるため、jar自体への移植の変更を最小限に抑える必要があります。

3)EMRを使用したSqoopは問題ありません。

参照: http: //mail-archives.apache.org/mod_mbox/hive-user/201204.mbox/%3CCAGif4YQv1RVSoLt+Yqn8C1jDN3ukLHZ_J+GMFDoPCbcXO7W2tw@mail.gmail.com%3E

于 2012-04-25T00:21:48.980 に答える
0

@ mark-groverは、s3://をhdfs://と互換的に使用できると述べましたが、これは完全には正確ではありません。ただし、場合によっては、apachesqoopに組み込まれているAWSEMRをインポートコマンドとともに使用すると、文句が表示されます。

ERROR tool.ImportTool: Imported Failed: Wrong FS: s3://<my bucket path>, expected: hdfs://ip-<private ip>.ap-southeast-2.compute.internal:8020

(私は明らかにコメントするのに十分な担当者がここにいませんが、図に答えて大丈夫です)

于 2018-07-25T05:22:27.033 に答える