問題タブ [hadoop-streaming]
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.
java - Hadoop: ジョブは小さなデータセットでは正常に実行されますが、大きなデータセットでは失敗します
次のような状況があります
次の構成の 3 台のマシン クラスターがあります。
Master
Slave 01
Slave 02
hadoop/conf/core-site.xml
hadoop/conf/mapred-site.xml
hadoop/conf/hdfs-site.xml
- 200 万を超える XML ドキュメントがあります (各ドキュメントのサイズは ~ 400 KB)
map
タスクはこれらの xml のそれぞれを開き、それらを次のように出力します。JSON
reduce
タスクはこれらのそれぞれをJSON
文字列として取得し、変換を適用して出力します- 番号。
map
タスク数- 100 - 番号。タスクの数
reduce
- 01 - ジョブ全体が正常に実行される場合
number of documents = 10,000
- の場合
number of documents = 278262
、ジョブが失敗し、次のようなさまざまな問題が発生します
WebUI上
スレーブ-01、スレーブ-02
マスター上
ログインして確認するとslaves
、これが私が見つけたものですhadoop-hduser-datanode-hadoop-01.log
この問題を解決するために何をする必要があるかを理解するのを手伝ってください。
hadoop - ファイルデータをトークン化できません
私はhadoopとmapreduceが初めてです。マッパーでは、テキスト ファイルからこれらのデータをトークン化します。最初の数行は以下の形式で指定します。
String Tokenizer を使用すると、これらのデータを分割できません。マシンが混乱して、このファイルからデータを取得できません。String.split() 以外に、この問題の代替手段はありますか?
hadoop - Hadoop でケースのみを使用する方法は?
Hadoop mapreduce は初めてです。ファイルのテキストを小文字に変換するためのmapreduceコードを開発したいのですが、ファイルの前と同じ順序で.つまり、wordcountデータシーケンスに似ているのではなく、ファイルの実際の順序を意味します。
hadoop - エラー: 失敗したマップ タスクの数が許可された制限を超えました。FailedCount: 1. Hadoop での Lucene 検索の実行時
大きなテキスト ファイル内の各レコードを使用して、Lucene のインデックスで検索を実行し、必要に応じて結果をマッサージして、出力に書き込みます。
大きな入力テキスト ファイルと作成済みの Lucene インデックスを Hadoop のファイル システムに配置して、Hadoop を使用しようとしています。次に、ファイル処理 (ファイル レコードの読み取り、Lucene での検索、出力の書き込み) を行う Java プログラムを変更して、Hadoop ファイルシステムからレコードを読み取り、メモリ内に Lucene インデックスを作成しました。Hadoop ジョブを開始するコマンドは次のようになります。
「concept.jar」には、concept.HadoopConceptRunner クラスが含まれており、これは私が作成したものであることに注意してください。
私の問題は、この Hadoop ジョブを正しく実行できないことです =.=". 以下のような例外が発生しましたが、これを解決するのに役立つ意味のあるものを他に見つけることができません。
と
このエラーを修正するにはどうすればよいですか?
python - hadoop-streaming: mapred.reduce.tasks=1 の場合、リデューサーが実行されていないようです
私は基本的なMap Reduce
プログラムを実行していますhadoop-streaming
のMap
ように見えます
私はそれを実行します
Hadoop in Actionで読んだのはmapred.reduce.tasks=1
、
特定のレデューサーを指定していないため、デフォルトの IdentityReducer が使用されます。その名前が示すように、IdentityReducer は入力をそのまま出力に渡します。
コンソールを見るとわかります
何の進展もなく、ただ走り続けるだけです。動作していないようですが、どうすれば修正できますか?
アップデート
D mapred.reduce.tasks=0
2 つのファイルが表示されpart-00000
、part-00001
両方のファイルに 1 行 0 がある場合when
D mapred.reduce.tasks=1
と-reduce 'cat'
動作は reduce が何もしていない場合と同じです実行する
cat file | python AttibuteMax.py 8
と868になります
これはD mapred.reduce.tasks=0
、 とcat file | python AttributeMax.py 8
も同じ出力を生成していないことを意味します (しかし、そうすべきですよね?)
入力データも同じ場合の動作の違いの原因は何ですか?
更新 1
D mapred.reduce.tasks=0
4 つのファイルpart-00000
、part-00001
、part-00002
およびpart-00002
1 行でそれぞれ 268、706、348、868 が表示される場合- 実行すると、
$ cat ~/Downloads/hadoop/input/apat63_99.txt | python ../../../src/main/python_scripts/AttributeMax.py 8 | cat
目的の出力が次のように表示されます868
ruby - RVM を使用した Hadoop ストリーミングで Gem が見つからない
元の質問 (以下の長いバージョン)。短いバージョン: マッパーとして ruby スクリプトを使用して Hadoop ストリーミングを実行し、すべてのクラスター ノードに rvm をインストールしても機能しません。ruby が Hadoop 起動シェルによって認識されていない (および rvm が正しくロードされていない) ためです。なんで?
wukong
Hadoop の map/reduce ジョブを作成するための gem として使用したいと考えていました。問題は、wukong
hadoop が gem をロードできない (つまり見つからない) ことです。Hadoop ジョブで次のエラーが表示されます。
ただし、実行cat somefile | ./test.rb --map
すると、すべてのクラスター マシンで期待どおりに機能します。また、Hadoop ログから取得できるテスト ファイルにデバッグ出力を含めました。実行時
wukong
も含むすべての宝石を生成します
$LOAD_PATH
実行中のローカル (hadoop によって起動されていない) ruby スクリプトを出力するときと同じパスを調べます。
Hadoop で起動された Ruby スクリプトが、明らかにインストールされ、正しく動作しているgem を見つけられないのはなぜですか?
Hadoop は次のように起動されます。
hadoop - Hadoop データ分割とデータ フロー制御
ストレージ システムとしての Hadoop について 2 つの質問があります。
3 つのデータ ノードの Hadoop クラスターがあり、サイズが 128 MB (分割サイズが 64 MB であると仮定) の巨大なファイルの分割を、選択したデータ ノードに転送したいと考えています。これは、そのような場合にどの分割がどの DataNode に行くかを制御する方法です。つまり、3 つのデータ ノード (つまり、D1、D2、D3) があり、特定のデータ ノードに移動する特定の分割 (「A」としましょう) が必要だとします。それを D2 とします。
どうすればこれを行うことができますか?
Hadoop ファイルシステムの可能な最小分割サイズは? 最小の分割サイズに設定するにはどうすればよいですか。
python - Amazon Elastic MapReduce-SIGTERM
私はEMRストリーミングジョブ(Python)を持っていますが、これは通常は正常に機能します(たとえば、10台のマシンが200個の入力を処理します)。ただし、大規模なデータセット(12台のマシンが合計6000の入力を処理し、入力ごとに約20秒)に対して実行すると、2.5時間のクランチの後、次のエラーが発生します。
これを正しく読んでいると、誰かがSIGTERMシグナルをストリーミングジョブに送信したため、サブプロセスがコード143で失敗しました。
私の理解は正しいですか?その場合:EMRインフラストラクチャはいつSIGTERMを送信しますか?
join - Hadoop ストリーミングによるマップ側結合
各行がレコードであるファイルがあります。特定のフィールド (フィールド A の場合に呼び出す) に同じ値を持つすべてのレコードが同じマッパーに送られるようにします。これは Map-Side Join と呼ばれていると聞いたことがありますが、ファイル内のレコードがフィールド A と呼ばれるもので並べ替えられていると簡単だとも聞きました。
より簡単な場合は、データを複数のファイルに分散することができますが、各ファイルはフィールド A で並べ替えられます。
これは正しいですか?ストリーミングでこれを行うにはどうすればよいですか? 私はPythonを使用しています。Hadoop を起動するために使用するコマンドの一部だと思いますか?
azure - Hadoop の生データへのアクセス
私は data.seattle.gov データ セットを見ていますが、一般的に、この大量の生データをすべて Hadoop クラスターに送信する方法を知りたいと思っています。Azureでhadoopを使用しています。