問題タブ [elastic-map-reduce]
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-web-services - s3 からハイブへの圧縮 (lzo) データのインポート
バックアップの手段として (EMR 経由で) DynamoDB テーブルを s3 にエクスポートします。エクスポートするときは、データを lzo 圧縮ファイルとして保存します。私のハイブ クエリは以下のとおりですが、基本的にはhttp://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/EMR_Hive_Commands.htmlの「データ圧縮を使用して Amazon DynamoDB テーブルを Amazon S3 バケットにエクスポートするには」に従いました。
逆のことをしたいのですが、LZOファイルを取得して、それらをハイブテーブルに戻します。これどうやってやるの?入力用のハイブ構成プロパティが表示されることを期待していましたが、ありません。私はググっていくつかのヒントを見つけましたが、決定的なものも機能するものもありません。
s3 のファイルの形式は次のとおりです: s3://[mybucket]/backup/year=2012/month=08/day=01/000000.lzo
エクスポートを行う HQL は次のとおりです。
s3から取得し、解凍して、ハイブテーブルに入れる方法はありますか??
python - Amazon Elastic MapReduce-SIGTERM
私はEMRストリーミングジョブ(Python)を持っていますが、これは通常は正常に機能します(たとえば、10台のマシンが200個の入力を処理します)。ただし、大規模なデータセット(12台のマシンが合計6000の入力を処理し、入力ごとに約20秒)に対して実行すると、2.5時間のクランチの後、次のエラーが発生します。
これを正しく読んでいると、誰かがSIGTERMシグナルをストリーミングジョブに送信したため、サブプロセスがコード143で失敗しました。
私の理解は正しいですか?その場合:EMRインフラストラクチャはいつSIGTERMを送信しますか?
hadoop - ElasticMapReduce: 既に割り当てられている EMR クラスターを再利用することは可能ですか?
新しいクラスターを作成するときに EMR CLI で --alive オプションを指定しましたが、別のジョブを起動する際にクラスターを再利用できるかどうか疑問に思っていますか? クラスターの何らかの ID を取得するための関連オプションが見つかりませんか? ということは、それができないということでしょうか。
java - AWS/EMR で実行すると、Hadoop Reducer 出力ファイルの「単語数」の半分が 0 バイトになるのはなぜですか?
基本的に、単純な単語カウント (単語とカウントのペアを含むテキスト ファイル、タブ区切り) のマッピング結果である一連のデータがあり、それを減らす必要があります。bz2 ファイルに圧縮された約 160 GB のデータがあります。
Amazon Web Services Elastic Map Reduce (AWS EMR) でジョブを実行するとき、10 個の cc2.8xlarge スレーブと 1 個の m1.xlarge をマスターとして使用します。最終的に 1200 の map タスクと 54 の reduce タスクがあります。map タスクが終了した直後に reduce タスクのちょうど半分が終了し、それらの出力はすべて 0 バイトです。入力が 0 バイトであると想定していますが、確認するのに十分なほどログを掘り下げていません。他の 27 個の reduce タスクは最終的に終了し、ファイル サイズはそれらすべてで一貫しています (それぞれ 2.3 GB)。出力ファイル(part-r-00000、...、part-r-00053)は、偶数ファイルが0バイトのファイルです。
これを 2 つのレデューサーを含む非常に小さなサンプルでローカルに実行すると、各レデューサーの出力にデータが含まれます。
私のマッパーとリデューサーは次のとおりです(Java w / extrasが取り除かれています):
他の誰かがこれを経験しましたか?なぜこれが起こったのか、またはこれをさらにデバッグする方法はありますか? ログで何かを探す必要がある場合に備えて、EMR デバッグをオンにしました。ありがとう
編集: S3でデータを読み込んで保存していることに注意してください
編集 2:この同じジョブを以前に 1 回実行したところ、0 バイトのファイルが表示され、Reducer にバグがあると想定したため、ジョブをキャンセルしました。したがって、これが 1 回限りのイベントではないことはわかっています。ジョブは同じクラスターで実行されました。私は当初、「Hadoop 2.0」を含む Cloudera 4 (CDH4) ライブラリで Java クラスをコンパイルしたため、これが問題である可能性があると考えました。2回目に実行したときは、基本的にAWSと同じバージョンのHadoop 0.20を備えたCloudera 3(CDH3)ライブラリでコンパイルされたJavaクラスを使用しました。また、この動作なしで過去にコンパイルするために CDH3 を使用しました。
python - botoでhadoopパラメータを設定しますか?
Amazon Elastic MapReduce ジョブで不適切な入力スキップを有効にしようとしています。ここで説明されている素晴らしいレシピに従っています。
http://devblog.factual.com/practical-hadoop-streaming-dealing-with-brittle-code
上記のリンクは、EMR ジョブで次の構成パラメーターを設定する必要があることを示しています。
Boto を使用して JobFlow でこれらの (およびその他の) mapred.XXX パラメータを設定するにはどうすればよいですか?
hive - インスタンス数を増やしても Hive クエリの速度が上がらない理由
Amazon の Elastic MapReduce で Hive を使用してテーブルを作成し、データをインポートしてパーティション分割しました。ここで、テーブル フィールドの 1 つから最も頻繁に使用される単語をカウントするクエリを実行します。
1 つのマスター インスタンスと 2 つのコア インスタンスがあり、計算に 180 秒かかったときに、そのクエリを実行しました。次に、1 つのマスターと 10 のコアを持つように再構成しましたが、これも 180 秒かかりました。なぜ速くしないのですか?
2 コアと 10 コアで実行すると、ほぼ同じ出力が得られます。
hadoop - jarライブラリをamazonelasticmapreduceと共有するにはどうすればよいですか?
jarをs3アップロードに高速化するには、すべての一般的なjarを通常のHadoopの「$ HADOOP_HOME/lib」のようなものにコピーします。これらのライブラリがプリインストールされたカスタムEMRHadoopインスタンスを作成することは可能ですか?またはもっと簡単な方法がありますか?
amazon-web-services - Elastic MapReduce の外部データ ソースの構成
現在の DB の上で Amazon Elastic MapReduce を使用したいと考えています (EC2 で Cassandra を使用しています)。Amazon EMR FAQ を見ると、可能であるはずです: Amazon EMR FAQ: Q: インターネットまたは Amazon S3 以外の場所からデータをロードできますか?
ただし、新しいジョブ フローを作成する場合、S3 バケットのみを入力データのオリジンとして構成できます。
これを行う方法に関するアイデア/サンプルはありますか?
ありがとう!
PS: Elastic MapReduce で外部データを使用する方法に関するこの質問を見たことがありますが、答えはそれを行う/構成する方法を実際には説明していません。単にそれが可能であるというだけです。
hadoop - piggybank と AvroStorage を使用した EMR のトラブルに対処する
Avro 形式で保存されたデータを読み取る EMR で豚のスクリプトを実行しています。ローカルで動作していましたが、スクリプトの他の部分を EMR で動作させるために、使用していた piggybank.jar を 0.10.0 ではなく 0.9.2 に戻す必要がありました。その変更を行った後、AvroStorage は暗黙のうちにデータの読み取りに失敗し、ゼロ レコードを返すだけです。ログなどには何も言及されていません。スクリプトは次のとおりです。
また、piggybank.jar がバージョン 0.10.0 の場合、動作します。バージョン 0.9.2 の場合はありません。他のライブラリの別のバージョンを使用する必要がありますか? avro-1.5.3.jar で試してみましたが、これもうまくいきませんでした。
別の注意:そうするとdescribe a;
、スキーマが正しく出力されます。
c# - Amazon .Net SDK がジョブフローを認識しないのはなぜですか?
私の会社は、AWS コンソールを常に使用してマップ削減クラスターをセットアップすることにうんざりしており、コンソールが提供するよりも多くの構成可能性を必要としています。.Net AWS SDK を使用して、ジョブ フローの作成と制御を可能にする単純なアプリケーションを作成しています。残念ながら、への呼び出しDescribeJobFlows
は常に空を返します (AWS コンソールでジョブを表示できるにもかかわらず)。サンプルコードは次のとおりです。
この単純なプログラムは常に 0 を出力します。
aws アクセス キーとシークレット キーが正しいこと、およびそのアカウントでジョブ フローが実行されていることを 3 回確認しました。今日は実行中のジョブ フローをいくつか作成したので、少なくともそれらは結果に含まれるはずです。地域によるフィルタリングや、リクエストに面白いデフォルトが含まれている可能性があるものは見当たりません。
ジョブ フローが表示されないのはなぜですか?