5

我正在使用 HA 名称节点配置 Hadoop 2.2.0 稳定版本,但我不知道如何配置对集群的远程访问。

我已经配置了手动故障转移的 HA 名称节点,并且我定义了dfs.nameservices并且我可以从集群中包含的所有节点访问具有名称服务的 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

您需要联系其中一个名称节点(正如您当前所做的那样) - 没有要联系的集群节点。

hadoop 客户端代码知道两个名称节点的地址(在 core-site.xml 中),并且可以识别哪个是活动的,哪个是备用的。可能有一种方法可以询问仲裁中的 zookeeper 节点以识别活动/备用节点(也许,我不确定)但你也可以检查其中一个名称节点 - 你有 50/50 的机会它是活跃的。

我必须检查一下,但是如果您只是从 HDFS 读取数据,您也许可以查询。

于 2013-11-15T23:30:17.480 回答
1

对于 Active Name 节点,您可以随时询问 Zookeeper。您可以从下面的 Zk 路径获取活动名称节点。

/hadoop-ha/namenodelogicalname/ActiveStandbyElectorLock 
于 2014-06-28T00:19:50.210 回答
1

有两种方法可以解决这种情况(java代码)

  1. 在代码中使用 core-site.xml 和 hdfs-site.xml

    通过 addResource 加载配置文件

  2. 在您的代码中使用 conf.set

    通过 conf.set 设置 hadoop conf

    使用 conf.set 的示例

于 2016-05-03T05:59:09.387 回答