問題タブ [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.
python - MrJob を使用した EMR でのランダムな java.io.FileNotFoundException jobcache エラー
MrJob を使用していて、ランダムにクラッシュし続ける Elastic Map Reduce で Hadoop ジョブを実行しようとしています。
データは次のようになります (タブ区切り)。
基礎となる MapReduce は非常に単純です。
実行するときは、デフォルトの mrjob.conf を使用して次のコマンドを使用します (私のキーは環境に設定されています)。
小さなデータセットで実行すると、正常に終了します。データ コーパス全体 (約 10GiB 相当) で実行すると、次のようなエラーが発生します (ただし、毎回同じポイントではありません!)。
これを 2 回実行しました。最初は 45 分後に死亡し、今回は 4 時間後に死亡しました。どちらの場合も、異なるファイルで停止しています。停止した両方のファイルを確認しましたが、どちらにも問題はありません。
どういうわけか、書き込んだスピルファイルを見つけることができず、混乱しています。
編集:
ジョブを再度実行したところ、数時間後に再び停止しましたが、今回は別のエラー メッセージが表示されました。
hadoop - Amazon Elastic Map Reduce - ジョブフローの作成
私はAmazonサービスに非常に慣れていません。ジョブフローの作成で問題に直面しています。ジョブ フローを作成するたびに、失敗するかシャットダウンします。入力、出力、またはマッパー関数のアップロード手法は、私には明確ではありません。開発者のセクションをフォローしましたが、状況が明確になっていません。どんな提案も役に立ちます。前もって感謝します。
エラーログは
amazon-s3 - S3でファイルを圧縮
S3 に 17.7GB のファイルがあります。これは、Hive クエリの出力として生成されたものであり、圧縮されていません。
圧縮すると約2.2GB(gzip)になることがわかっています。転送がボトルネック (250kB/s) である場合、このファイルをできるだけ早くローカルにダウンロードするにはどうすればよいですか。
S3 でファイルを圧縮したり、s3cmd、boto、または関連ツールで転送時に圧縮を有効にしたりする簡単な方法は見つかりませんでした。
hadoop - Hadoop Hive で「イベントの順序」クエリを実行する方法は?
過去 2 か月間 Hive について学習してきましたが、特定のシーケンス ベースのクエリを実行する方法を理解するのに苦労しています。次の例を見てください。
- ユーザーアクションからなる巨大なログがあります
- すべてのユーザー アクションには日付フィールドがありますが、異なるマシンからの複数のログ ファイルが原因で、明らかにその順序でスキャンされない場合があります。
- 各ログは、さまざまな異なるイベントを記録できます。この例では、これらを文字で示します: A、B、C、D...
問題: 「平均して、B が発生する前にイベント A が発生する回数」を尋ねるクエリを作成するにはどうすればよいでしょうか?
ユーザーをグループ化して、A と B を実行したユーザーのみを取得し、発生した A の数を平均する方法は知っていますが、B の最初の発生で制限するのは難しいようです。見栄えの悪いクエリを 10 個ほど並べることで実際にこれを行うことができると思いますが、私が知らないより簡単な方法があるかどうかを知りたいと思っていました。
ありがとう!
hadoop - Mapper クラスの map メソッドに送信された値が正しくないか、不完全に読み取られました
3 つのステップで構成されるジョブがあります。私の入力は、Amazon S3 に保存された暗号化された JSON オブジェクト (1 行に 1 つ) です。(s3e://)。
ジョブ パラメータ:
その他の重要なパラメータ:
JSON が正しく終了していないことを除いて、2 番目のステップのマッパーがほぼ常に失敗するという問題に直面しています。さらに調査した結果、JSON 自体は入力ファイルで正しく、不完全な値を読み取るのはマッパーであることがわかりました。によって読み取られた値TextInputFormat
が不完全であり、正しく終了していません。
これはかなり一貫して起こっています。しかし、おもしろいのは、2 番目のステップが成功し、3 番目のステップで失敗する場合があることです。
私のテスト データは非常に巨大で、最初のステップ (常に実行されます) が正常に完了すると、550 ~ 600 MB のチェックポイントの断続的なファイルが 5 つ得られ、これらは 2 番目のステップに入力されます。
2 番目のステップへの入力が暗号化されていない試行の 1 つで、成功しました。
私はかなり立ち往生しています。あらゆる種類のポインタやヘルプをいただければ幸いです。
hadoop - Hadoop: AWS EMR ジョブの入力パスと出力パス
Amazon Elastic Mapreduce で Hadoop ジョブを実行しようとしています。データと jar が aws s3 にあります。ジョブフローをセットアップするとき、JAR引数を次のように渡します
以下は私のhadoopの主な機能です
ただし、私のジョブフローは stderr の次のログで失敗します
では、aws emr で入力パスと出力パスを指定するにはどうすればよいですか?
hadoop - Elastic Map Reduce:エラーが発生し続けますか?
私たちはElasticMapReduceを非常に広範囲に使用しており、ElasticMapReduceを使用してますます多くのデータを処理しています。データの形式が正しくないために、ジョブが失敗することがあります。あらゆる種類の例外を処理するためにマップスクリプトを絶えず改訂してきましたが、スクリプトを壊すことができる不正な形式のデータがまだある場合があります。
一部のマップまたはリデュースジョブが失敗した場合でも、Elastic MapReduceを「エラー時に続行」に指定することは可能ですか?
少なくとも、クラスター全体が失敗する失敗したタスクの最小数を増やすことは可能ですか(場合によっては、500程度のジョブのうち1つだけ失敗したジョブがあり、少なくともそれらの結果を取得してクラスターを作成したい場合があります)実行を継続します。)
さらに、新しい例外を処理するようにマップスクリプトを修正することはできますが、デフォルトのHadoop "aggregate"レデューサーを使用します。それが失敗した場合、例外をキャッチする方法はありません。「集計」レデューサーのエラーを処理する特別な方法はありますか、それとも上記の質問2で利用可能なものを処理する必要がありますか(失敗したタスクの最小数を増やします)。
amazon-s3 - Amazon EMR ジョブがいつ終了したかを確認する方法は?
ハイブ ジョブを実行するためにAmazon Elastic MapReduce Ruby ( http://aws.amazon.com/developertools/2264 ) を使用しています。仕事がいつ終わったかを知る方法はありますか?現時点で考えられるのは、「--list --active」を指定して emrclient を実行し続けることですが、これを行うためのより良い方法があることを願っています。
ありがとうございました
shell - ディレクトリを Hadoop ストリーミングに渡す: ヘルプが必要
コンテキストは、次のように実行する bash スクリプトを使用して、 Amazon EMR (ウェブ UI)でストリーミング ジョブを実行しようとしているということです。
入力ディレクトリにはサブディレクトリがあり、これらのサブディレクトリには gzip されたデータ ファイルがあります。
mapperScript.sh
その失敗の関連部分は次のとおりです。
基本的に、ストリーミング モードでサブディレクトリを読み取る必要があります。これを実行すると、hadoop は次のように文句を言います。
同様のqがここで尋ねられたことを認識しています
そこで提案されたのは、独自の InputFormat を作成することでした。スクリプトの記述方法や EMR 入力の指定方法に何か他に欠けているものがあるのか、それとも Java で独自の InputFormat を記述することが私の唯一の選択肢なのか疑問に思っています。
EMR にも「input/*」を使用して入力を試みましたが、うまくいきませんでした。
hive - 複数のサブクエリをハイブし、グループ化する
統計をMySQLからAmazonDynamoDBおよびElasticMapReduceに切り替えています。
MySQLで動作する次のクエリがあり、ハイブに同じテーブルがあり、MySQLと同じ結果が必要です(last_week、last_month、last_yearの製品ビュー)。
たとえば、先月ハイブを使用して結果を取得する方法を見つけました。
しかし、MySqlで得られるようなグループ化された結果が必要です。
ハイブでこれを行うことは可能ですか?
前もって感謝します、
アメル