Я пытаюсь подключиться к экземпляру HDFS, работающему на удаленной машине.Как подключиться к удаленной HDFS
Я запускаю затмение на компьютере с Windows, а HDFS работает в окне Unix. Вот то, что я попытался
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://remoteHostName:portNumber");
DFSClient client = null;
System.out.println("try");
try
{
System.out.println("trying");
client = new DFSClient(conf);
System.out.println(client);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if(client!=null)
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
, но это дает мне следующее исключение
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.ipc.RPC.getProxy(Ljava/lang/Class;JLjava/net/InetSocketAddress;Lorg/apache/hadoop/security/UserGroupInformation;Lorg/apache/hadoop/conf/Configuration;Ljavax/net/SocketFactory;ILorg/apache/hadoop/io/retry/RetryPolicy;Z)Lorg/apache/hadoop/ipc/VersionedProtocol;
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:135)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:280)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:245)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:235)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:226)
, кстати, я получил Portnumber от HDFS-site.xml на удаленной машине
Правильно ли этот подход?
Кроме того, было бы проще сделать это в Python?
EDIT
Обратите внимание, что у меня есть двоичные файлы Hadoop расстегнул на моих окнах и я установить переменную окружения HADOOP_HOME соответственно. Может ли это быть проблемой?