복붙노트

[HADOOP] Hadoop : core-site.xml에서 기본 FileSystem을 HDFS로 설정할 수 없습니다.

HADOOP

Hadoop : core-site.xml에서 기본 FileSystem을 HDFS로 설정할 수 없습니다.

나는 Pseudo-Distributed 모드에서 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>

그래서 저는 기본 파일 시스템이 HDFS로 설정되어 있다고 믿었습니다. 그러나 다음 코드를 실행할 때 :

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);

나는 fs가 DistributedFileSystem 인스턴스 여야한다고 생각했다. 그러나 LocalFileSystem 인스턴스로 판명되었습니다.

하지만, 다음 코드를 실행하면 :

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

그런 다음 DistributedFileSystem fs를 얻을 수 있습니다.

core-site.xml에서 내 기본 FileSystem을 HDFS로 설정하지 않았습니까? 그렇지 않다면 어떻게 설정해야합니까?

해결법

  1. ==============================

    1.이클립스 환경은 Hadoop의 conf 디렉토리가 core-default.xml과 core-site.xml을 찾기 위해 디렉토리를 설치할 위치를 알지 못한다.

    이클립스 환경은 Hadoop의 conf 디렉토리가 core-default.xml과 core-site.xml을 찾기 위해 디렉토리를 설치할 위치를 알지 못한다.

    이것들은 Eclipse 클래스 패스에 추가되지 않기 때문에 기본 core-site.xml은 jar 파일 hadoop - * - core.jar (예 : hadoop-0.20.2-core.jar 버전 0.20)에서로드됩니다. 로컬 시스템이 기본 파일 시스템이므로 DistributedFileSystem 대신 LocalFileSystem 객체가 표시됩니다.

    따라서 프로젝트의 클래스 경로를 eclipse 프로젝트 디렉토리에 추가하려면 프로젝트 속성 (프로젝트 -> 속성) -> Java 빌드 경로 -> 라이브러리 탭 -> 외부 클래스 폴더 추가 -> >

    위의 코드는`/core-site.xml '을 Eclipse 클래스 패스에 추가해야하며 모든 설정이 기본 설정보다 우선해야합니다.

  2. from https://stackoverflow.com/questions/16711665/hadoop-cannot-set-default-filesystem-as-hdfs-in-core-site-xml by cc-by-sa and MIT license