3

まず第一に、私は初心者であることを明確にし、質問で正しい用語を使用していない場合は言い訳をしなければなりません。

これは私のシナリオです:

ツイート、コメント、メールなどの大量のテキストを分析する必要があります。現在、データは発生時に Amazon RD MySQL インスタンスに挿入されています。

後で、そのデータに対して RTextTools ( http://www.rtexttools.com/ ) を使用して R ジョブをローカルで実行し、目的の結果を出力します。この時点で、R スクリプトがデータを分析し、データを表示するために後で使用される MySQL テーブルにデータを書き戻すことを明確にすることが重要な場合があります。

私が最近抱えている問題は、ジョブを実行するたびに約 1 時間かかり、少なくとも 1 日に 2 回実行する必要があることです...そのため、ローカル コンピューターを使用することはもはや選択肢ではありません。

代替手段を探して、Amazon Elastic MapReduce インスタンスについて読み始めましたが、これは一見必要なもののように見えますが、ここで質問と混乱を開始します。

  1. EMR のデータは S3 バケットから取得する必要があると読みました。その場合、RDS インスタンスではなく、S3 バケット内の JSON などにデータを保存する必要がありますよね?
  2. この時点で、HIVE テーブルを作成し、RHive を使用してデータを読み取り、RTextTools がジョブを実行して結果を RDS テーブルに書き戻すことをお勧めしますが、これは正しいですか?
  3. そして、最後の最も重要な質問です。R を使用して EC2 インスタンスを実行し、そこで R スクリプトを実行するのと比較して、このすべての問題を解決する価値はありますか?計算時間を短縮できますか?

お時間をいただきありがとうございます。正しい方向へのヒントをいただければ幸いです。

4

2 に答える 2

1

EMRを試すことを検討する必要があります。1 時間という制約がある場合、S3+EMR は試してみる価値があります。処理ワークロードの種類については、スケーラブルなオンデマンドの Hadoop/Hive プラットフォームを使用してサイクルを節約できます。明らかに、試行と切り替えに関連して、学習、再プラットフォーム化、継続的なクラスター管理コストが発生します。それらは自明ではありません。または、EC2+S3 でも実行され、より高いレベルの (そして潜在的に使いやすい) 抽象化を提供する Qubole などのサービスを検討してください。

免責事項: 私は Qubole のプロダクト マネージャーです。

于 2012-08-23T14:09:20.023 に答える
1

興味深いことに、いくつか提案したいと思います。

  1. データを完全に S3 に保存できますが、最初にデータをファイル (txt など) に書き込んでから S3 にプッシュする必要があります。生の JSON を S3 に配置することはできません。おそらく、データを高速に取得するために、S3 にデプロイされたクラウド フロントの利点を得ることができます。RDS も使用できます。自分で分析する必要があるパフォーマンスの違い。

  2. 結果を RDS に書き戻すことは問題になりません。EMR は基本的に、RDS との通信に使用できる ElasticMapReduce-master と ElasticMapReduce-slave の 2 つの EC2 インスタンスを作成します。

  3. R を使用して EC2 インスタンスを試してみる価値はあると思いますが、計算時間を短縮するには、高価な EC2 インスタンスを使用するか、自動スケーリングを行って異なるインスタンス間でタスクを分割する必要があるかもしれません。並列計算ロジック全体を自分で実装するのと同じですが、 EMR の場合は、この map reduce のすべてのロジックをそれ自体で取得しています。したがって、まず EMR で試してみてください。うまくいかない場合は、R で新しい EC2 インスタンスを試してください。

それがどうなるか教えてください、ありがとう。

于 2012-08-18T21:20:07.313 に答える