我正在尝试创建一个Java程序来读写HDFS文件。
我看了一些Java API的示例。使用以下代码,我成功地实现了它。
Configuration mConfiguration = new Configuration();
mConfiguration.set(“fs.default.name”, “hdfs://NAME_NODE_IP:9000″);
但是我的设置必须更改为Hadoop HA设置,因此无法使用硬编码的namenode地址。
我看到了一些例子,其中我们提供配置xml文件的路径,如下所示。
mConfiguration.addResource(new Path(“/usr/local/hadoop/etc/hadoop/core-site.xml”));
mConfiguration.addResource(new Path(“/usr/local/hadoop/etc/hadoop/hdfs-site.xml”));
当应用程序在与hadoop相同的系统上运行时,此代码也起作用。
但是,当我的应用程序不在与hadoop相同的机器上运行时,它将无法正常工作。
因此,我应该采取哪种方法,使系统可以工作,但不进行直接的namenode寻址。
任何帮助都会受到赞赏。