0

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

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

但是,将来,我需要连接到一个配置有 1 个活动名称节点和 1 个备用名称节点的 hdfs,如果活动名称节点出现故障,则自动使用备用名称节点。

有人对如何实现这一点有任何建议吗?任何链接/示例都将不胜感激,因为我对任何与 Hadoop 平台相关的东西还是新手。

谢谢

4

1 回答 1

1

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

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

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

如果您想以编程方式执行此操作,则需要为名称节点配置 Zookeeper 并为 HDFS 配置“名称服务”,这些属性可以在该 XML 文件中找到

于 2018-01-18T02:39:36.137 回答