問題タブ [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 - hive : 分散キャッシュからアイテムを削除します
経由で分散キャッシュに物を追加できます
そして、大量の HQL を実行します。
次のような一連のコマンドがある場合
この場合largelookuptable1
、2 番目のクエリで不必要に使用できます。2番目のクエリが実行される前にそれを取り除く方法はありますか?
java - Gemfire-キャッシュ作成時のIllegalStateException
Gemfireクライアントアプリを実行しようとしていますが、次のコードを実行するとIllegalStateExceptionが発生します。
スレッド「main」の例外java.lang.IllegalStateException:DynamicRegionFactoryのクライアントプールは、queue-enabledをtrueに設定して構成する必要があります。
queue-enabledをtrueに設定する方法がわかりません。「ドキュメントのこの部分を確認してください」のような答えではなく、いくつかのコードをいただければ幸いです。私はすでにどこを見てきました。
java - 分散キャッシュ製品内の複数の分散マップで動作するトランザクションを伝達する方法
分散キャッシュ製品とは、CoherenceやHazelcastのようなものを意味します。例としてHazelcastを使用します。
いくつかのマップで状態を保持するオブジェクトがあるとします。
アソシエート()関数は複数のマップを変更するため、トランザクションである必要があることに注意してください。犬と飼い主は何らかの形で関連付けられているため、メソッドが完了するまでデータが一貫性のない状態になっている可能性があります。これで、別のクラスが分散メモリから読み取る場合、トランザクションが発生していることを認識できず、データの表示に一貫性がなくなる可能性があります。
現在、Hazelcastはこのような問題を解決するためにロックを分散していますが、パフォーマンスへの影響は何ですか?doSomething()が高価であると仮定します(たとえば、両方のマップをローカルにコピーする)。その場合、複数のクライアントをロックアウトするのは適切でない可能性があります。
この分散同期の問題に対する標準的な解決策はありますか?
java - すべてのマップタスク用のHadoopキャッシュファイル
私のマップ関数は、入力ごとにファイルを読み取る必要があります。そのファイルはまったく変更されません。読み取り専用です。分散キャッシュは私が思うに大いに役立つかもしれませんが、それを使用する方法を見つけることができません。オーバーライドする必要のあるpublicvoidconfigure(JobConf conf)関数は、非推奨だと思います。JobConfは確かに非推奨です。すべてのDistributedCacheチュートリアルは、非推奨の方法を使用しています。私に何ができる?オーバーライドできる別の構成関数はありますか?
これらは私のマップ関数の最初の行です:
そのMFileをキャッシュして、マップ関数が何度も何度もそれを調べる必要がないようにしたい
hadoop - Hadoop DistributedCache がステータスを報告できませんでした
Hadoop ジョブでは、いくつかの XML ファイルをマッピングし、すべての要素の ID をフィルタリングしています(from < id>-tags)
。ジョブを特定の ID セットに制限したいので、大きなファイル (2.7 GB で約 2 億 5000 万行、すべての行に ID として整数のみ) を読み込みます。そこで、DistributedCache を使用しsetup()
、Mapper のメソッドで BufferedReader を使用してファイルを解析し、ID を HashSet に保存します。
今、仕事を始めると無数に
Task attempt_201201112322_0110_m_000000_1 failed to report status. Killing!
マップジョブが実行される前。
クラスタは 40 個のノードで構成されており、ジョブのタスクが実行される前に a のファイルがDistributedCache
スレーブ ノードにコピーされるため、大きなHashSet
. 私はすでに 2000 年代に増加していmapred.task.timeout
ます。もちろんもっと時間を延ばすこともできますが、実際にはこの時間で十分ですよね?
「大きな読み取り専用ファイルを効率的に配布する」方法として使用されていたためDistributedCache's
、ここで失敗する原因と、関連する ID をすべてのマップジョブに渡す別の方法があるかどうか疑問に思いましたか?
hadoop - ファイルを分散キャッシュで使用するには、ファイルを HDFS に置く必要がありますか?
私は得る
Hadoop の分散キャッシュにローカル ファイルを追加しようとすると、. ファイルが HDFS 上にある場合、このエラーは発生しません (当然、予想される FS を使用しているため)。最初に hdfs にコピーせずに分散キャッシュ内のローカル ファイルを使用する方法はありますか? コード スニペットを次に示します。
ありがとう
hadoop - Hadoop 分散キャッシュが機能しない
私はHadoopが初めてです。Hadoop 0.22 を使用しています。ドライバーでは、次のコードを使用しました。
Map クラスでは、ローカル クラスパスに jar を追加するためにどのコードを使用する必要がありますか?
詳細
マップで必要なジョブがあり、フェーズ htmlunit.jar を減らします。この jar を上記のコードを使用してクラスパスに追加しますが、ジョブを送信すると、htmlunit 参照を使用する行に ClassNotFoundException があります。上記のコードの場合大丈夫です。DistributedCache は、タスクトラッカーのクラスパスに jar を自動的に追加します。何が問題なのですか? ジョブを送信するときにオプション -libjars htmlunit.jar も使用する必要がありますか? 別の Hadoop コンポーネントを使用する必要がありますか?
java - 依存する Hadoop ジョブを 1 つのドライバーで実行する
現在、2 番目のジョブが最初のジョブの出力を分散キャッシュに追加する必要がある 2 つの Hadoop ジョブがあります。現在、手動で実行しているため、最初のジョブが終了したら、出力ファイルを引数として 2 番目のジョブに渡し、そのドライバーがそれをキャッシュに追加します。
最初のジョブは単純なマップのみのジョブであり、両方のジョブを順番に実行したときに 1 つのコマンドを実行できることを望んでいました。
最初のジョブの出力を分散キャッシュに入れて、2 番目のジョブに渡すことができるようにするためのコードを手伝ってくれる人はいますか?
ありがとう
編集:これはジョブ1の現在のドライバーです:
これは job2 のドライバーです。ジョブ 1 の出力は、最初の引数としてジョブ 2 に渡され、キャッシュにロードされます。
hadoop - Hadoop 分散キャッシュ
DistributedCache に関する Apache および Yahoo のチュートリアルを読みました。私はまだ一つのことについて混乱しています。すべてのデータノードにコピーしたいファイルがあるとします。DistributedCache.addCacheFile(new URI(hdfsPath),job)
そのため、ジョブ Driver で使用
して、ファイルを使用できるようにします。次に、DistributedCache.getLocalCacheFiles(job)
Mapper 内で呼び出します。
ここで、このファイルの内容に基づいてデータ ノードに配列を作成し、map() が実行されるたびに配列の要素にアクセスできるようにします。これはできますか?キャッシュされたファイルを読み取って Mapper クラス内で配列を作成すると、Mapper ごとに 1 回ではなく、Mapper への新しい入力ごとに配列が作成されるように見えるため、混乱しています。この部分は実際にどのように機能しますか (つまり、いつどこで配列を作成する必要があるか)。
hadoop - Hadoop Map / ReduceジョブでDistributedCacheにアクセスするにはどうすればよいですか?
GenericOptionsParser
の-files
フラグを使用して、実行中のジョブに小さなファイルを渡そうとしています。
これにより、ジョブがクラスターに送信され、必要に応じてマッパー/リデューサーで使用できるようにlocal-file.csvが添付されます。これを疑似分散モードで実行するとうまく機能しましたが、クラスターでジョブを起動すると、ファイルが見つからないようです。私は次のsetup
ようにマッパーのメソッドでファイルを読んでいます:
ジョブの実行中に、次の例外が発生します。
私が間違っていることについて何か考えはありますか?ありがとう。