【问题标题】:Automatically connect to HDFS secondary NN from Java application, once the primary NN goes down一旦主 NN 发生故障,自动从 Java 应用程序连接到 HDFS 辅助 NN
【发布时间】:2018-01-18 00:09:11
【问题描述】:

我有一个简单的 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 平台相关的东西还是新手。

谢谢

【问题讨论】:

    标签: java hadoop configuration hdfs namenode


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2016-06-30
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2020-12-29
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多