問題タブ [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.
hadoop - Hadoop でのファイル分割/パーティション
Hadoop ファイルシステムには、X と Y という 2 つのファイルがあります。通常、hadoop は、サイズが 64 MB のファイル X と Y のチャンクを作成します。X の 32 MB と Y の 32 MB から 64 MB のチャンクが作成されるように、hadoop に強制的に 2 つのファイルを分割させることはできますか?
hadoop - カスタム Hadoop ネイティブ コーデックを libhadoop.so にコンパイルするにはどうすればよいですか?
ネイティブ Hadoop 圧縮コーデックを作成しました。Hadoop で動作させるには、ネイティブ (C コード) を libhadoop.so にコンパイルする必要があります。
どうすればこれを達成できますか?
hadoop - Hadoopストリーミングタスクの失敗
私はC++で記述された比較的単純なプログラムを持っており、MapReduceジョブにHadoopストリーミングを使用しています(私のバージョンのHadoopはClouderaです)。
最近、多くのストリーミングタスクが失敗し続け、タスクトラッカーによって再起動され、最後に正常に終了することがわかりました。ユーザーログを追跡しましたが、一部のMapReduceタスクの入力がゼロになっているようです。具体的には、エラーメッセージは次のようになります。
エラー率がかなり高い場合があります(50%近く)。普通ではないと思います。誰か知っている
a)何が起こっているのですか?
b)どうすれば修正できますか?
ありがとう
ruby - Hadoop ストリーミングと Ruby マッパー/リデューサーを使用して、分散された map-reduce ジョブを設定するにはどうすればよいですか?
ルビーを使用してビルドされたローカル マッパーとリデューサーを入力ファイルで実行できます。
ただし、分散システムの動作については不明です。
本番システムでは、2 台のマシンに HDFS をセットアップしました。大きなファイルを HDFS に保存すると、並列化を可能にするために両方のマシンにいくつかのブロックが存在することがわかっています。実際のマッパーとレデューサー ファイル (この場合は私の ruby ファイル) も HDFS に保存する必要がありますか?
また、実際にストリーミング ジョブを実行して、両方のシステムで並行して実行するにはどうすればよいでしょうか?
hadoop - Hive と Hadoop ストリーミング API の出力間でデータを共有する
私はいくつかの Hadoop ストリーミング API プログラムを持っており、この出力形式で出力を生成します: "org.apache.hadoop.mapred.SequenceFileOutputFormat" そして、ストリーミング API プログラムは、入力形式 "org.apache.hadoop.mapred.SequenceFileAsTextInputFormat" でファイルを読み取ることができます。
出力ファイルのデータは次のようになります。
今、ハイブで出力を読みたいです。このスクリプトでテーブルを作成しました:
クエリでデータをクエリするとき
結果は次のようになります。
最初の列は無視されているようです。ハイブはキーではなく値を出力として使用すると思います。何か案は?
python - 標準のパイピングのように動作する 2 つのコマンドから 1 つの Linux シェル コマンドを作成するにはどうすればよいですか?
Hadoop Streaming を使用して などの 2 つのコマンドを実行しようとしていますgunzip | map_to_old_format.py
が、gzip で "|.gz not found" というエラーが発生するか、これらの行に沿って何かが発生します (Hadoop を介して実行した場合のみ.. コマンド ラインで実行すると動作します)。大丈夫)。
Python でその場で gunzip する方法がわからないので、このコマンドを組み合わせて実行するシェル スクリプトを 1 つ作成したいと思います (例: gunzip_and_map_to_old.sh
)。私はこれを次のように試しましたが、gzip は気に入りませんでした (gzip は「gzip: stdin: not in gzip format」と文句を言います):
python gunzip に関しては、ここでf = gzip.GzipFile("", "rb", fileobj=sys.stdin)
説明されている Wrapper メソッドと同様に試しました。
java - HBase を使用してデータをフェッチし、Mahout を使用してテキストの類似性を計算する
私のプロジェクトでは、2 つの問題に直面している一連のドキュメントのテキストの類似性を計算しようとしています。
以前に計算したドキュメントの用語頻度を再計算したくありません。たとえば、10 個のドキュメントがあり、10 個すべてのドキュメントの用語頻度と逆ドキュメント頻度を計算しました。次に、さらに2つのドキュメントを取得します。ここで、既存の 10 個のドキュメントの用語頻度を計算したくありませんが、入ってきた新しい 2 個の TF を計算し、12 個のドキュメントすべての TF を使用して、12 個のドキュメントの IDF を次のように計算します。全体。 既存のドキュメントの TF を再計算せずにすべてのドキュメントの IDF を計算する方法は?
ドキュメントの数が増える可能性があるため、インメモリ アプローチ (InMemoryBayesDatastore) の使用が煩雑になる可能性があります。私が望むのは、すべてのドキュメントのTFをHBASEテーブルに保存し、新しいドキュメントが到着したら、新しいドキュメントのTFを計算し、それらをHBASEテーブルに保存してから、このHBASEテーブルを使用してすべてのTFを取得することですIDF を計算するためのドキュメント。 HBase を使用して、データをシーケンス ファイルからフェッチする代わりに、Mahout の Text Similarity に提供するにはどうすればよいですか?
hadoop - 最適なスロット数を取得する Hadoop ストリーミング
ストリーミング マップ削減ジョブがあります。処理用のスロットが 30 ほどあります。最初に、60 レコード (フィールドはタブ区切り) を含む単一の入力ファイルを取得します。すべてのレコードの最初のフィールドは数値で、最初のレコード番号 (最初のフィールド) は 1、2 番目のレコード番号 (最初のフィールド) は 2 などです。 . 処理の次のステップのために、これらのレコードから 30 個のファイルを作成したいと考えています。それぞれに 2 つのレコードが含まれています (均等な分布)。
これが機能するために、hadoop ジョブにレデューサーの数を 30 と指定しました。最初のフィールドがキーとして使用され、それぞれ 2 つのレコードを含む 30 個の出力ファイルが得られると予想しました。
30 個の出力ファイルを取得できますが、すべてが同じ数のレコードを含むわけではありません。一部のファイルは空 (ゼロ サイズ) です。何か案が
python - 失敗したマップタスクの数が許可された制限を超えました
Pythonを使用してHadoopストリーミングを試してみています。ここから助けを借りて、簡単なマップを作成し、スクリプトを削減しました
map
スクリプトは次のとおりです。
スクリプトは次のreduce
とおりです。
これらのスクリプトをhadoopストリーミングjarを使用して実行すると、map
タスクが終了し、100%完了しているのに、reduce
ジョブが22%でスタックし、長期間経過するとERROR streaming.StreamJob: Job not successful. Error: # of failed Map Tasks exceeded allowed limit. FailedCount: 1.
エラーが発生することがわかります。
この背後にある正確な理由を見つけることができません。
私のターミナルウィンドウは次のようになります:
誰か助けてくれませんか?
EDIT ジョブトラッカーの詳細は次のとおりです。
hadoop - ハイブでのORDERBYの代替
ハイブでORDERBYを使用することにより、単一のレデューサーのみを使用します。したがって、ORDERBYは非効率的です。ORDERBYに利用できる代替ソリューションはありますか。
よろしく、ラット