5

HA namenode を使用して Hadoop 2.2.0 安定リリースを構成していますが、クラスターへのリモート アクセスを構成する方法がわかりません。

手動フェイルオーバーで構成された HA namenode が定義さdfs.nameservicesれており、クラスターに含まれるすべてのノードから nameservice を使用して hdfs にアクセスできますが、外部からはアクセスできません。

アクティブなネームノードに直接連絡することで、hdfs で操作を実行できますが、それは望ましくありません。クラスターに連絡してから、アクティブなネームノードにリダイレクトされたいのです。これが HA クラスターの通常の構成だと思います。

誰かが今それを行う方法を知っていますか?

(前もって感謝します...)

4

4 に答える 4

2

hdfs サイトにさらに値を追加する必要があります。

<property>
    <name>dfs.ha.namenodes.myns</name>
    <value>machine-98,machine-99</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.myns.machine-98</name>
    <value>machine-98:8100</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.myns.machine-99</name>
    <value>machine-145:8100</value>
</property>

<property>
    <name>dfs.namenode.http-address.myns.machine-98</name>
    <value>machine-98:50070</value>
</property>

<property>
    <name>dfs.namenode.http-address.myns.machine-99</name>
    <value>machine-145:50070</value>
</property>
于 2014-10-30T08:33:18.840 に答える
1

Name ノードの 1 つに接続する必要があります (現在行っているように)。接続するクラスター ノードはありません。

Hadoop クライアント コードは、(core-site.xml 内の) 2 つの namenode のアドレスを認識しており、どちらがアクティブでどちらがスタンバイであるかを識別できます。アクティブ/スタンバイを識別するために定足数内の飼育係ノードに問い合わせることができる方法があるかもしれませんが (おそらく、私にはわかりません)、namenodes の 1 つを確認することもできます-50/50 の確率でアクティブなもの。

確認する必要がありますが、HDFS から読み取るだけの場合は、どちらでもクエリできる可能性があります。

于 2013-11-15T23:30:17.480 に答える
1

Active Name ノードについては、いつでも Zookeeper に問い合わせることができます。以下の Zk パスからアクティブな名前ノードを取得できます。

/hadoop-ha/namenodelogicalname/ActiveStandbyElectorLock 
于 2014-06-28T00:19:50.210 に答える