Hadoop:无法在core-site.xml中将默认文件系统设置为HDFS

Yuh*_*hao 5 filesystems hadoop hdfs

我在伪分布式模式下使用Hadoop 1.0.3.我的conf/core-site.xml设置如下:

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
    <name>mapred.child.tmp</name>
    <value>/home/administrator/hadoop/temp</value>
    </property>
</configuration>
Run Code Online (Sandbox Code Playgroud)

所以我相信我的默认文件系统设置为HDFS.但是,当我运行以下代码时:

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Run Code Online (Sandbox Code Playgroud)

我认为fs应该是一个DistributedFileSystem实例.但事实证明是LocalFileSystem实例.

但是,如果我运行以下代码:

Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://localhost:9000");
FileSystem fs = FileSystem.get(conf);
Run Code Online (Sandbox Code Playgroud)

然后我可以得到一个DistributedFileSystemfs.

我的默认文件系统是不是在core-site.xml中设置为HDFS?如果没有,我应该如何设置?

Nir*_*rvi 5

Eclipse环境不知道Hadoop安装目录下的conf目录在哪里找到core-default.xml和core-site.xml,除非将这些文件添加到Eclipse类路径以首先加载。

由于这些未添加到eclipse类路径中,因此默认的core-site.xml将从jar文件hadoop-*-core.jar(例如,版本0.20的hadoop-0.20.2-core.jar)加载,该文件具有本地系统作为默认文件系统,因此您看到的是LocalFileSystem对象而不是 DistributedFileSystem

因此,要将<HADOOP_INSTALL>/conf目录添加到eclipse项目类路径,请转到项目属性(项目->属性)-> Java构建路径->库选项卡->添加外部类文件夹->从中选择conf目录<HADOOP_INSTALL>

上面的代码应该将`/core-site.xml'添加到eclipse类路径中,并且所有设置都应覆盖默认设置。