我的hadoop-1.2.1配置受到打击:
***core-site.xml***
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/dsk/hadoop/tmp-storage</value>
</property>
</configuration>
***hdfs-site.xml***
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
我想使用Hadoop Filesystem API在HDFS中开辟新的方向。所以我在我的代码中写道:
@Test
public void testDirectory() throws Exception {
Configuration configuration = new Configuration();
FileSystem hdfs = HDFSUtils.getFileSystem(configuration);
Path path = new Path("/test_dir");
boolean isSuccess = hdfs.mkdirs(path);
System.out.println("mkdir test_dir" + (isSuccess ? " success" : " failure"));
}
我的class HDFSUtils
是:
public static FileSystem getFileSystem(Configuration conf) {
FileSystem hdfs = null;
try {
hdfs = FileSystem.get(conf);
return hdfs;
} catch (Exception e) {
e.printStackTrace();
}
return hdfs;
}
我想要我的hdfs层次结构,如下所示:
但是当我用JUnit测试时,我得到了mkdir test_dir failure
。
我的工作IDE是Eclipse,在conf
文件夹中已包含两个xml
个文件
我仍然在如何使用Filesystem API操作HDFS上的文件方面遇到一些问题。
起初我使用了URL
方法并且它有效。
String fileUrl = "hdfs://localhost:9000/firstSQL.sql";
但当我将其更改为HDFS FileSystem API时,我找不到我的文件:
Configuration conf = new Configuration();
FileSystem hdfs = HDFSUtils.getFileSystem(conf);
Path path = new Path("/firstSQL.sql");
失败痕迹为java.io.FileNotFoundException: File /firstSQL.sql does not exist.
但我在HDFS中确实有firstSQL.sql
。
我对HDFS上我文件的真实路径感到困惑。