問題タブ [distributed-cache]
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 - DistributedCacheHadoop-FileNotFound
分散キャッシュにファイルを配置しようとしています。これを行うために、次のような-filesオプションを使用してドライバークラスを呼び出します。
MYFILEを含むURI/パスの配列と戻り値getCacheFiles()
。getLocalCacheFiles()
(例:hdfs:// localhost / tmp / hadoopuser / mapred / staging / knappy / .staging / job_201208262359_0005 / files / histfile#histfile)
残念ながら、マップタスクでMYFILEを取得しようとすると、がスローされますFileNotFoundException
。
スタンドアロン(ローカル)モードと疑似分散モードでこれを試しました。
原因が何であるか知っていますか?
アップデート:
次の3行:
これを印刷してください:
したがって、ファイルはjob.xmlmapred.cache.files
プロパティにリストされているようであり、ローカルファイルが存在しているようです。それでも、FileNotFoundExceptionがスローされます。
hadoop - Hadoop 分散キャッシュのエラー メッセージの解釈
分散キャッシュに 3 つのファイルを配置しようとしています。
以下を使用して、プログラムでそれらの1つを配置します。
また、-files
オプションを使用して他の 2 つのファイルを配置します。
スタンドアロン モードでローカルに実行すると、すべて正常に動作します。
疑似分散モードで実行しようとすると、このエラーが発生し、その意味がわかりません。私はそれをグーグルで検索しましたが、成功しませんでした。
それが何を意味し、どのように解決できるか知っている人はいますか?
java - ReduceHadoopの分散キャッシュ
レデューサー1のメモリーにファイルAを、レデューサー2のメモリーにファイルBを保持したい。これは、Hadoopで分散キャッシュテクノロジーを使用して可能ですか?または、これを達成する他の方法はありますか?
ありがとう
java - GemfireCacheのキーとしてオブジェクトを書き込む
Gemfireリージョン内にオブジェクトをキーとして配置しようとしています。
以下のエラーで失敗します-
com.gemstone.gemfire.cache.client.ServerOperationException:com.gemstone.gemfire.pdx.PdxSerializationException:クラス「TestClass」のインスタンスを作成できませんでした
gemfireキャッシュ領域に保存するときにキーとして使用する必要があるオブジェクトに何を実装する必要があるかを提案してください。
PS gemfireの自動シリアル化プロパティをtrueに設定し、TestClassのequalsとハッシュコードをオーバーライドしています。デフォルトの空のコンストラクターがあります。
hadoop - ファイルが分散キャッシュに正しく配置されていない
次のコードを使用して、分散キャッシュにファイルを追加しています。
次に、ファイルをマッパーに読み込みます。
問題は、1 行しか読み取っていないことです。これは、キャッシュに入れていたファイルではありません。むしろ、cm9vdA==、または base64 のルートです。
他の誰かがこの問題を抱えていましたか、または私がどのように分散キャッシュを間違って使用しているかを確認しましたか? Hadoop 0.20.2 を完全に分散して使用しています。
hadoop - Hadoop: DistributedCache からファイルを取得するときの FileNotFoundException
マスターとスレーブの 2 ノード クラスター (v1.04) があります。マスターでは、2 つのファイルをusingTool.run()
に追加します。ファイルは HDFS に存在します。Mapper.setup() では、これらのファイルをキャッシュから取得します。DistributedCache
addCacheFile()
問題はFileNotFoundException
、ファイルがスレーブ ノードに存在するにもかかわらず、1 つのファイルに対して a がスローされることです。
スレーブ上で ls –l:
私の質問は次のとおりです。
- すべてのファイルがすべてのノードに存在するべきではありませんか?
- それを修正するにはどうすればよいですか?
ありがとう。
hadoop - Hadoop DistributedCache が原因で IOException が発生する
Hadoop を使用して selfjoin タスクを実行するコードをいくつか書きました。この目的のために、DistributedCache クラスを使用します。コードを Netbeans でローカルに実行すると、ジョブは正しく実行されますが、hdfs にデータをアップロードした後に単一ノード クラスタで実行しようとすると、次の例外が発生します。
問題が JobLocalizer.java にあり、DistributedCache.getLocalCacheFiles(conf)
それが 2 を返すことは理解していますが、これが発生する理由はわかりません。私が得られないものを誰か教えてもらえますか?
PS: Hadoop-1.0.4 を使用していることを忘れていました。
PS2: 問題はDistributedCache.getLocalCacheFiles(conf)
、実際の入力ファイルと、入力ファイルと同じ一時ファイルが表示され、/tmp フォルダーに一時的に保存されることです。これは、ローカルで実行すると発生します (例外はスローされません)。hdfsから実行すると同様のことが起こると思いますが、例外がスローされます。どうすればこれを修正できますか?
java - DistributedCache から Hadoop ジョブのシャーディングされた出力を読み取る
(タイトルは、Hadoopsが複数のファイルにわたって出力を分割することを反映するために分割する必要があります)
複数の Hadoop ジョブを連鎖させています。初期のジョブの 1 つは、他のジョブよりも桁違いに小さい出力を生成するため、これを DistributedCache に入れたいと考えています。それは難しい部分です。これを行うために私が書いたコードは次のとおりです。
これは、私のローカル マシンと、セットアップした仮想クラスターで正常に動作します。ただし、この質問DistributedCache.getCacheFiles()
とは異なり、AWS では戻り値が空のリストであることを理由に失敗します。
基本的に、1 つの MR ジョブからシャードされた出力をプログラムで読み取り、それを DistributedCache に入れる方法が必要です。レデューサーの数はプログラムが実行されるたびに変わる可能性があるため、ハード ファイル名を指定することはできません。S3 と HDFS がどのように連携するかを完全には理解していないため、FileSystem と対話してシャードされた出力を読み取るのに苦労しています。AWS で機能する方法でこれを行うにはどうすればよいですか?
参考までに、私は Hadoop 1.0.x を使用しています。1.0.4 (4 つの Ubuntu 12.10 仮想マシン) と 1.0.3 (AWS) の組み合わせです。
mapreduce - mapreduce で DistributedCache から HAR ファイルを読み取る
HAR アーカイブを作成し、このアーカイブからデータを読み取る必要がある MR ジョブを実行する Oozie ワークフローを作成しました。1. アーカイブが作成されます。 2. ジョブが実行されると、マッパーは分散キャッシュ内のアーカイブを認識します。3.??? このアーカイブを読むにはどうすればよいですか? このアーカイブから行ごとにデータを読み取るための API は何ですか (私の har は複数の改行で区切られたテキスト ファイルのバッチです)。注意: DistirubtedCache に保存されている通常のファイル (HAR アーカイブではない) を操作すると、完全に機能します。HAR からデータを読み取ろうとしているときに問題が発生しました。
コード スニペットを次に示します。