복붙노트

[HADOOP] 로컬로 스파크 작업을 실행할 때 "Scheme : gs에 대한 파일 시스템 없음"

HADOOP

로컬로 스파크 작업을 실행할 때 "Scheme : gs에 대한 파일 시스템 없음"

Spark 작업 (버전 1.2.0)을 실행 중이며 입력 내용은 Google Clous Storage 버킷 (예 : gs : // mybucket / 폴더)에있는 폴더입니다.

내 Mac 컴퓨터에서 로컬로 작업을 실행할 때 다음과 같은 오류가 발생합니다.

gs 경로를 지원하려면 2 가지 작업을 수행해야한다는 것을 알고 있습니다. 하나는 GCS 커넥터를 설치하고 다른 하나는 Hadoop 설치의 core-site.xml에 다음 설정을 설치합니다.

<property>
    <name>fs.gs.impl</name>
    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
    <description>The FileSystem for gs: (GCS) uris.</description>
</property>
<property>
    <name>fs.AbstractFileSystem.gs.impl</name>
    <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
    <description>
     The AbstractFileSystem for gs: (GCS) uris. Only necessary for use with Hadoop 2.
    </description>
</property>

내 문제는 각 부분을이 로컬 모드에서 정확히 구성해야하는지 잘 모르겠다는 사실에서 비롯된 것 같습니다. Intellij 프로젝트에서 Maven을 사용하고 있으므로 다음과 같이 spark 라이브러리를 가져 왔습니다.

<dependency> <!-- Spark dependency -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>1.2.0</version>
    <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>

, Hadoop 1.2.1을 다음과 같이 정의합니다.

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>1.2.1</version>
</dependency>

문제는, 어디 hadoop 위치가 스파크에 대해 구성되어 있는지, 그리고 또한 어디에 hadoop conf가 구성되어 있는지 모르겠습니다. 따라서 잘못된 Hadoop 설치를 추가하는 중일 수 있습니다. 또한, 파일을 수정 한 후에 다시 시작해야하는 것이 있습니까? 내가 본 것까지는 내 컴퓨터에서 Hadoop 서비스가 실행되지 않습니다.

해결법

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

    1.Spark이 $ {SPARK_INSTALL_DIR} / conf 수정과 관련된 관련 Hadoop 구성을 선택하는 데 도움이되는 몇 가지 방법이 있습니다.

    Spark이 $ {SPARK_INSTALL_DIR} / conf 수정과 관련된 관련 Hadoop 구성을 선택하는 데 도움이되는 몇 가지 방법이 있습니다.

    Older Spark docs는 이것이 Spark의 클래스 패스에 xml 파일을 자동으로 포함 시킨다는 것을 설명합니다 : https://spark.apache.org/docs/0.9.1/hadoop-third-party-distributions.html

    최신 Spark 문서는 이것을 우선적으로 사용하는 방법으로 알려줍니다 : https://spark.apache.org/docs/1.1.0/hadoop-third-party-distributions.html

  2. ==============================

    2.스칼라에서 hadoopConfiguration을 설정할 때 다음과 같은 설정을 추가하십시오 :

    스칼라에서 hadoopConfiguration을 설정할 때 다음과 같은 설정을 추가하십시오 :

    val conf = sc.hadoopConfiguration
    conf.set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
    conf.set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")
    
  3. ==============================

    3.나는 틀린 말을 할 수 없지만, 여기 내가 시도 할 것이있다.

    나는 틀린 말을 할 수 없지만, 여기 내가 시도 할 것이있다.

    프로그램을 다시 시작해야합니다. Hadoop 프로세스가 없습니다. 로컬 및 독립형 모드에서 Spark는 Hadoop을 라이브러리로만 사용하며 IO 용으로 만 사용합니다.

  4. from https://stackoverflow.com/questions/27782844/no-filesystem-for-scheme-gs-when-running-spark-job-locally by cc-by-sa and MIT license