主NN出现故障后,自动从J​​ava应用程序连接到HDFS辅助NN

时间:2018-01-18 00:09:12

标签: java hadoop configuration hdfs namenode

我有一个简单的Java客户端,可以将文件保存到HDFS - 配置了1个名称节点。为此,我使用hadoop配置,指定默认文件系统,如:

org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.set("fs.defaultFS", "hdfs://NNip:port");

但是,将来,我需要连接到配置了1个活动namenode和1个备用namenode的hdfs,如果活动namenode出现故障,请自动使用备用namenode。

有没有人对如何实现这一点有任何建议?任何链接/示例都会非常感激,因为我对Hadoop平台相关的任何内容都是新手。

由于

1 个答案:

答案 0 :(得分:1)

默认情况下,Configuration变量将读取类路径中的hdfs-site.xml文件。

理想情况下,您应该将此文件与Java应用程序一起使用,或者在操作系统中定义HADOOP_CONF_DIR环境变量。这就是hdfs CLI工具的工作方式,例如,它只是转发到Java类。

然后,如果您的群集正在使用Namenode HA,它应该已经知道fs.defaultFS的值设置为什么,因此您不需要自己设置它。

如果您想以编程方式执行此操作,则需要为名称节点配置Zookeeper并"nameservice" for HDFS, which properties can be found in that XML file