我正在尝试读取以检查 HDFS 上是否存在文件。我正在使用 Eclipse IDE,并且在类路径中拥有所有必需的 hadoop jar 和 hadoop 配置。当我执行程序时,我看到以下异常。
Configuration conf = new Configuration(true);
conf.addResource(new File("core-site.xml").toURI().toURL());
conf.addResource(new File("hdfs-site.xml").toURI().toURL());
conf.addResource(new File("mapred-site.xml").toURI().toURL());
FileSystem hdfs = FileSystem.get(conf);
boolean isExists = hdfs.exists(source);
例外:
java.io.IOException: Couldn't create proxy provider class org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
at org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.<init>(ConfiguredFailoverProxyProvider.java:93)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
谁能帮我解决这个问题吗?
<property>
<name>dfs.client.failover.proxy.provider.**your-cluster-name**</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
这应该是你的集群名称,我想它也是区分大小写的。