hadoop ha namenode远程访问

rt4zxlrg  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(601)

我正在用ha namenode配置hadoop2.2.0稳定版,但是我不知道如何配置对集群的远程访问。
我用手动故障转移配置了ha namenode,并定义了 dfs.nameservices 我可以使用nameservice从集群中包含的所有节点访问hdfs,但不能从外部访问。
我可以通过直接联系活动namenode在hdfs上执行操作,但我不想这样,我想联系集群,然后被重定向到活动namenode。我认为这是ha集群的正常配置。
现在有人知道怎么做了吗?
(提前谢谢……)

5ktev3wc

5ktev3wc1#

对于活动名称节点,您可以始终询问zookeeper。您可以从下面的zk路径获取活动名称节点。

/hadoop-ha/namenodelogicalname/ActiveStandbyElectorLock
au9on6nz

au9on6nz2#

您必须向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>
lztngnrs

lztngnrs3#

您需要联系其中一个name节点(正如您当前所做的那样)-没有要联系的集群节点。
hadoop客户机代码知道两个namenodes的地址(在core site.xml中),并且可以识别哪个是活动的,哪个是备用的。可能有一种方法可以在仲裁中查询zookeeper节点,以确定活动/备用节点(可能,我不确定),但您也可以检查其中一个namenodes-您有50/50的机会它是活动节点。
我必须检查一下,但是如果您只是从hdfs中读取数据,您可能可以查询其中任何一个。

nxowjjhe

nxowjjhe4#

有两种方法可以解决这种情况(用java编写代码)
在代码中使用core-site.xml和hdfs-site.xml
通过addresource加载conf
在代码中使用conf.set
通过conf.set设置hadoop conf
使用conf.set的示例

相关问题