2016-09-02 5 views
0

Hadoop MRジョブの設定方法でredis(jedis)クライアント接続を初期化しました。マップジョブで接続を使用してキー、値のペアを更新すると、複数のノードで実行されているマップで同じ接続を使用して、redisを更新できますか?または、接続がロックされていますか?セットアップ方法でhadoopで共有接続

答えて

1

質問が正しく表示されているかわかりません。 マザーのセットアップ段階でRedisクライアントを初期化した場合、各マッパーはRedisと通信するために独自の接続を使用します。 すべてのマッパーはそれぞれのJVMで動作しているので、私はそれらの間で接続を共有することはできません。

はい、複数のクライアントが同時にRedisに書き込むことができます。これらのすべてがRedisの同じキーに書き込んでいる場合は、内部的にはこのケースを処理しますが、クラスタレベルのロックは受けません。

+0

はい、設定フェーズで一度接続を初期化したので、各マッパーがどのようにして独自の接続を確立するのですか。 "setup()"メソッド内で作成された接続は1回実行され、すべてのマッパー間で共有されますか? –

+0

setup()はマッパーごとに1回実行されます。最初にsetup()が実行され、続いてmap()に続いてclose()が実行され、各マッパーは別々のredisクライアントを取得します。 –

0

マッパーに同じ接続セッションオブジェクトを渡した場合、マッパーはそのセッションを使ってredisを更新します。この場合、ロックはありません。

関連する問題