問題タブ [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.
hadoop - Pig on EMR: EXTRACT 関数の正規表現引数にセミコロンを含める方法
私は、必要に応じてセミコロンで区切られ、ランダムな順序で、関心のある文字列を含む Pig のいくつかのデータを使用しています。
次のコードは、テスト「キー」の文字列の値を抽出する必要があります。
ただし、コードを実行すると、次のエラーが発生します。
最初は正規表現エスケープ構文をオフにしていると思っていましたが、それは問題ではないようです。Google 検索から得られる唯一の情報は、最近修正されたように見えるバグ レポートですが、それは私が実行している Amazon EMR クラスターの問題です (この分析のためにアドホックにスピンアップしました)。
バグ レポートや他の場所で提案されているように、セミコロンを対応する Unicode (\u003B) に置き換えると、同じエラーが発生します。
私は気が狂っている可能性があり、これは構文の問題である可能性があるため、誰かが私を正しい方向に向けるか、これが既存の問題であることを確認できることを願っています. 後者の場合、回避策はありますか (Pig で、または必要な文字列を一致させるため)?
乾杯
python - Map Reduce を使用したファイルの分割
EMR を使用して、テキスト ファイルの内容を 2 つの異なるファイルに分割したいと考えています。入力ファイル、マッパーおよびリデューサー スクリプトはすべて AWS の S3 に保存されます。現在、私のマッパーは、ファイル全体の各フィールドをタブで区切ることにより、stdin の入力を再フォーマットしています。
私の減速機は魔法が起こる場所です。レデューサーで、特定のフィールドの値に基づいて、このテキスト ファイルを 2 つの異なるファイルに分割したいと考えています。これが私の現在の reducer.py コードです
この EMR ジョブは失敗し、次のエラー メッセージが返されます: ステップが失敗したためシャットダウンします。各行で fileReaders を使用して、これらのスクリプトの両方をローカルでテストしましたが、動作します。タスクを EMR にインポートすると問題が発生します。私の質問は次のとおりです: - EMR を使用してファイルを 2 つ以上のファイルに分割することは可能ですか? - もしそうなら、S3 が動的に新しいファイルを作成することを妨げているので、EMR ジョブは失敗していますか? - または、コードの動作が間違っていますか?
すべてのフィードバックに感謝します。
ありがとうございました。
hadoop - S3 ファイルを連結して EMR で読み取る
連結したいログファイルを含む S3 バケットがあり、EMR ジョブへの入力として使用します。ログ ファイルは次のようなパスにありますbucket-name/[date]/product/out/[hour]/[minute-based-file]
。すべての日付ディレクトリのすべての時間ディレクトリにあるすべての分のログを取得し、それらを 1 つのファイルに連結したいと思います。そのファイルを EMR ジョブへの入力として使用したいと考えています。元のログ ファイルは保存する必要があり、新しく結合されたログ ファイルはおそらく別の S3 バケットに書き込まれます。
hadoop fs -getmerge
SSH 経由で EMR マスター ノードで使用しようとしましたが、次のエラーが発生しました。
This file system object (file:///) does not support access to the request path 's3://target-bucket-name/merged.log'
ソース S3 バケットには他のファイルがいくつか含まれているため、そのすべてのファイルを含めたくありません。ワイルドカード マッチは次のようになりますs3n://bucket-name/*/product/out/*/log.*
。
目的は、EMR への数万または数十万の小さな (10k-3mb) 入力ファイルの問題を回避し、代わりに、より効率的に分割できる 1 つの大きなファイルを与えることです。
java - Amazon EMR: java.io.IOException: ファイルは既に存在します: s3n:///output/part-r-00002
MapReduce ジョブを実行しています。私のコードは、単純な計算を行う 1 つのクラスだけで構成されています。hadoop1.0.3 の単一ノード設定で正常に実行されます EMR で実行すると、次のエラーが表示されます
amazon-s3 - 日付範囲を選択するために s3distcp を使用する方法は?
名前にタイムスタンプが付いた s3 で以下のようなログがあります。ハイブを使用できるように、s3distcp を使用して EMR にデータを取得したいと考えています。
s3distcp を使用して日付範囲を選択するにはどうすればよいですか? 例: 201303031003 から 201305031003 まで? 2ヶ月の差です
java - hadoop/emr キーと値のペアを保存する方法
EMRで一連のMapReduce
ジョブを実行しています。ただし、3 番目のMapReduce
ジョブは 2 番目のジョブから出力されたデータを必要MapReduce
とし、出力は基本的に 100 万を超えるキーと値のペアです (キーと値の両方が 1KB 未満です)。この情報を EMR と同じマシン上の分散ストアに保存して、後続のジョブが情報にアクセスできるようにする良い方法はありますか? を見ましたDistributedCache
が、ファイルを保存するためのものですか?Hadoop が 100 万個の小さなファイルを格納するために最適化されているかどうかはわかりません..
または、何らかの形で別のMapReduce
ジョブを使用して、すべてのキーと値のペアを 1 つの出力ファイルに結合し、そのファイル全体をDistributedCache
.
お知らせ下さい。ありがとう!