問題タブ [amazon-emr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-emr - aws emr を使用して定期的にデータを処理する
このスレッドで尋ねられたものと同様の質問があると思いますが、より具体的にしようと思います...
aws を使用してデータを定期的に処理する最良の方法は何ですか。たとえば、S3 に集約したレポートを 1 分に 1 回処理したいとします。スクリプトを介して毎分既存のジョブにステップを追加するのが最善の方法ですか?
amazon-s3 - Amazon Elastic MapReduce - S3 から DynamoDB への一括挿入が非常に遅い
約 1 億 3000 万のアイテム (合計 5 Gb 以上) を単一の DynamoDB テーブルに最初にアップロードする必要があります。アプリケーションから API を使用してアップロードする際に問題が発生したため、代わりに EMR を試すことにしました。
簡単に言えば、非常に平均的な (EMR の場合) 量のデータのインポートには、最も強力なクラスターでも時間がかかり、ほとんど進行せずに数百時間かかります (テストの 2Mb データビットを処理するのに約 20 分、管理できませんでした)。 12 時間で 700Mb ファイルのテストを終了します)。
すでにAmazonプレミアムサポートに問い合わせましたが、今のところ「DynamoDBのインポートがなぜか遅い」とのことでした。
インタラクティブなハイブ セッションで次の手順を試しました。
さまざまなフラグには、目に見える効果がないようです。デフォルトの設定ではなく、次の設定を試しました。
DynamoDB ターゲットの代わりに HDFS に対して実行された同じコマンドは、数秒で完了しました。
これは単純なタスクであり、非常に基本的なユース ケースのように思えます。ここで何が間違っているのでしょうか。
amazon-emr - Amazon EMR ブートストラップを高速化するには?
集中的な計算に amazon EMR を使用していますが、計算を開始するのに約 7 分かかります。計算をすぐに開始する賢い方法はありますか? 計算は、ユーザー向けの Web サイトから開始された Python ストリームであるため、長いスタートアップを行う余裕はありません。
アマゾン AWS という海の選択肢を単純に見逃したのかもしれません。ジョブを起動するシンプルさ (これが私が EMR を使用したものです)、スケーラビリティ、そして使用した分だけ支払う (そして起動時間は役に立ちません) ことだけが必要です。
python - AmazonEMRのPydoop
Amazon EMRでPydoopをどのように使用しますか?
私はこのトピックをグーグルで調べてみましたが無駄になりました:それは可能ですか?
java - Java アプリケーションで Elastic MapReduce ジョブ フローの完了を待つにはどうすればよいですか?
最近、私はアマゾン ウェブ サービス (AWS) を使用していますが、この件に関するドキュメントがあまりないことに気付いたので、私のソリューションを追加しました。
Amazon Elastic MapReduce (Amazon EMR) を使用してアプリケーションを作成していました。計算が終了した後、作成されたファイルに対していくつかの作業を実行する必要があったため、ジョブ フローがいつ作業を完了したかを知る必要がありました。
これは、ジョブ フローが完了したかどうかを確認する方法です。
特定のジョブ ID を検索して、DescribeJobFlowsRequest
そのジョブが終了したか失敗したかを確認することもできます。
他の人に役立つことを願っています。
mahout - lucene.vector を使用して mahout で solr インデックスをベクトル化する
Mahout を使用して Amazon EMR でクラスタリング ジョブを実行しようとしています。S3 にアップロードした solr インデックスがあり、mahouts lucene.vector を使用してベクトル化したいと考えています (これはジョブ フローの最初のステップです)。
ステップのパラメーターは次のとおりです。
- Jar: s3n://mahout-bucket/jars/mahout-core-0.6-job.jar
- MainClass: org.apache.mahout.driver.MahoutDriver
- 引数: lucene.vector --dir s3n://mahout-input/solr_index/ --フィールド名 --dictOut /test/solr-dict-out/dict.txt --output /test/solr-vectors-out/vectors
ログのエラーは次のとおりです。
不明なプログラム「lucene.vector」が選択されました。
Hadoop と Mahout を使用してローカルで同じプロセスを実行したところ、問題なく動作しました。EMR で lucene.vector 関数を呼び出すにはどうすればよいですか?
ruby - Elastic Mapreduce ジョブをプログラムで簡単に制御できますか?
標準として使用されている ruby で記述されたコマンド ライン クライアントがあります。ただし、1.9 では動作しません。ruby 用の非常に優れた aws-sdk もありますが、これは EMR をサポートしていません。良い代替手段はありますか?
r - 短いタスク用の Amazon EC2 オンデマンド ワーカー
ユーザー向けの確率グラフを生成するために、リソースを大量に消費する MCMC (マルコフ連鎖モンテカルロ) 計算を R でオンデマンドで実行する必要がある Web アプリケーションを構築しようとしています。
制約:
明らかに、Web アプリのフロントエンドと同じサーバーでリソースを集中的に使用する計算を実行したくないため、これらのタスクはワーカー インスタンスに渡す必要があります。
これらの計算の実行にはかなりの量の CPU が必要であり、待ち時間をできるだけ低く (できれば数分ではなく数秒) 維持したいので、より強力なハードウェアで計算を実行することをお勧めします。
強力な EC2 インスタンスを 66¢/時間 x 24 時間/日で実行する余裕はないので、オンデマンドまたはスポット リクエスト インスタンスがおそらく必要です。
私が思いついたオプションは次のとおりです。
Amazon SWF (または SQS) によって管理される、一度に 1 つのタスクを実行する安価で手頃なワーカー インスタンスを 1 日 24 時間実行します。
短所:- 高遅延- 安価なハードウェア、長い待機時間。
- 高遅延- 安価なハードウェア、長い待機時間。
より強力なワーカー インスタンスをタスクごとに生成し (ジョブがキューに追加されるたびにスピンアップ)、完了時にインスタンスを終了します。
短所:- 高価/無駄- 毎回サーバーで 1 時間の料金を支払い、計算には数秒しか使用しません。
- 起動時のオーバーヘッド- 新しい EC2 インスタンスをオンデマンドでスピンアップすると、無視できないほどのレイテンシが発生します (より強力なハードウェアを利用するという目的全体が相殺されます)?
- 高価/無駄- 毎回サーバーで 1 時間の料金を支払い、計算には数秒しか使用しません。
#2 と同様ですが、低入札の EC2 スポット リクエストを使用します。
短所:- 起動時のオーバーヘッド- #2 を参照
- 矛盾?- これまでスポット リクエストを処理したことがないので、そのようなソリューションがどれほど変動的であるか、または実践的であるかはわかりません... ピーク時にタスクを完了できるように、入札単価を継続的に調整する必要がありますか? ? また、計算の途中で中断されないように、プロセスを注意深く監視する必要があると思います。
- 起動時のオーバーヘッド- #2 を参照
強力なハードウェア ワーカー インスタンスとその負荷を積極的に監視し、1 時間ごとにインスタンスをインテリジェントに起動および終了して、コストと可用性の最適なバランスを維持する、ある種のハイブリッド ソリューション
短所:- 複雑でコストのかかるセットアップ- このようなものを処理する優れたマネージド サービスがない限り、そのインフラストラクチャをすべて自分でセットアップする必要があります...
- 複雑でコストのかかるセットアップ- このようなものを処理する優れたマネージド サービスがない限り、そのインフラストラクチャをすべて自分でセットアップする必要があります...
高可用性オンデマンド ハードウェアの料金を、時間単位ではなく分単位で支払うことができるサービスがあればいいのにと思います。
だから私の質問は次のとおりです。
この問題をどのように解決することをお勧めしますか?
Amazon SWF の上位に位置し、負荷分散とアイドル状態のワーカーの終了に役立つ優れた EC2 インスタンス管理ソリューションはありますか?
スポット リクエスト ビッドは私の問題を解決しますか? それとも、必ずしもすぐに完了する必要のないタスクにより適していますか?
python - Hadoop 非分割 TextInputFormat
分割せずにファイル全体をマッパーに送信する方法はありますか?
これを読みましたが、中間ファイルを生成せずに同じことを行う別の方法があるかどうか疑問に思っています。理想的には、Hadoop に対するコマンド ラインの既存のオプションが必要です。
streaming
Amazon EMR で Python スクリプトを使用してこの機能を使用しています。
python - Hadoopストリーミング:エラーの報告
Pythonスクリプトを使用したHadoopストリーミングで例外を報告するためのベストプラクティスは何ですか?
つまり、入力を理解できないマッパースクリプトがあるとしましょう。Hadoopにジョブを終了してエラーメッセージを報告するように通知するにはどうすればよいですか?
使用logging
して終了しsys.exit
ますか?