我正在尝试使用hdfs创建目录,我的Hadoop集群没有在localhost上运行,而是在不同的网络上运行。请告诉我如何正确连接。我使用以下代码连接到hdfs:
import java.io.BufferedInputStream;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HadoopJava {
public static void main(String[] args) throws IOException {
HadoopJava hadoopJava = new HadoopJava();
hadoopJava.mkdir("/home/anoop/javamkdir");
}
public void mkdir(String directory) throws IOException {
Configuration obj = new Configuration();
obj.set("fs.default.name", "hdfs://10.111.214.124:50070");
FileSystem fs = FileSystem.get(obj);
Path path = new Path(directory);
fs.mkdirs(path);
System.out.println("created");
fs.close();
}
}
错误跟踪如下:
显示java.lang.NullPointerException 在java.lang.ProcessBuilder.start(ProcessBuilder.java:1010) 在org.apache.hadoop.util.Shell.runCommand(Shell.java:404) 在org.apache.hadoop.util.Shell.run(Shell.java:379) 在org.apache.hadoop.util.Shell $ ShellCommandExecutor.execute(Shell.java:589) 在org.apache.hadoop.util.Shell.execCommand(Shell.java:678) 在org.apache.hadoop.util.Shell.execCommand(Shell.java:661) at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639) 在org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:468) 在org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456) 在org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424) 在org.apache.hadoop.fs.FileSystem.create(FileSystem.java:905) 在org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886) 在org.apache.hadoop.fs.FileSystem.create(FileSystem.java:783) 在org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:365) 在org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338) 在org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289) 在org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:2086) 在org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:2055) 在org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:2031) 在HadoopJava.copyfileFromHDFSToLOCAL(HadoopJava.java:74) 在HadoopJava.main(HadoopJava.java:29)