我有一个简单的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条答案
按热度按时间lhcgjxsq1#
这个
Configuration
默认情况下,变量将读取类路径中的hdfs-site.xml文件。理想情况下,您应该将此文件与java应用程序一起使用,或者定义一个
HADOOP_CONF_DIR
操作系统中的环境变量。这就是hdfs
例如,cli工具就是一种工作,它只是转发到java类。然后,如果集群使用的是namenodeha,那么它应该已经知道
fs.defaultFS
设置为,所以您不需要自己设置。如果您想以编程的方式进行,那么需要为namenodes配置zookeeper,为hdfs配置“nameservice”,这些属性可以在xml文件中找到