0
Java를 통해 원격으로 Hadoop 파일 시스템에 액세스하려고하지만 다음 코드를 실행할 때마다 로컬 파일 시스템 만 표시됩니다.Java를 사용하여 Hadoop 파일 시스템의 인스턴스를 원격으로 만드는 방법은 무엇입니까?
스택 오버플로에 대한 많은 솔루션을 살펴 보았지만 아무 것도 작동하지 않는 것 같습니다. 내가 잘못 뭐하는 거지
코드
Configuration obj = new Configuration();
obj.set("fs.defaultFS", "hdfs://localhost:8020");
obj.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
obj.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml"));
URI uri = new URI("hdfs://localhost:8020/");
Path path =new Path("/Myfiles/wc.txt");
FileSystem fs = FileSystem.get(obj);
System.out.println(fs.getHomeDirectory());
if(fs instanceof DistributedFileSystem) {
System.out.println("HDFS is the underlying filesystem");
} else {
System.out.println("Other type of file system "+fs.getClass());
}
FSDataInputStream fsDataInputStream = fs.open(path);
InputStreamReader inputStreamReader = new InputStreamReader(fsDataInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
bufferedReader .close();
: 여기
는 현재 시도?
내가 가진 코드와보고있는 오류를 게시하십시오. –
적절한 core-site.xml, hdfs-site.xml 파일이 애플리케이션의 클래스 경로에 존재하는지 확인하십시오. 이러한 파일에는 Hadoop 클러스터의 유효한 구성이 들어 있어야합니다. – Zyoma
나는 위와 같이 게시 한 코드를 볼 수있다. –