11

Spark ジョブ (バージョン 1.2.0) を実行しています。入力は Google Cloud Storage バケット内のフォルダーです (つまり、gs://mybucket/folder)。

Mac マシンでローカルにジョブを実行すると、次のエラーが発生します。

5932 [main] ERROR com.doit.customer.dataconverter.Phase1 - 日付: 2014_09_23 のジョブがエラーで失敗しました: スキームのファイルシステムがありません: gs

gs パスをサポートするには、2 つのことを行う必要があることを知っています。1 つは GCS コネクタをインストールする方法で、もう 1 つは 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 の場所が Spark 用に構成されている場所と、hadoop conf が構成されている場所がわからないことです。したがって、間違った Hadoop インストールに追加している可能性があります。また、ファイルを変更した後に再起動する必要があるものはありますか? 私の知る限り、私のマシンでは Hadoop サービスが実行されていません。

4

3 に答える 3

2

Spark が関連する Hadoop 構成を取得できるようにするには、いくつかの方法があります。どちらも変更を伴います${SPARK_INSTALL_DIR}/conf

  1. ${HADOOP_HOME}/conf/core-site.xml を ${SPARK_INSTALL_DIR}/conf/core-site.xml にコピーまたはシンボリック リンクします。たとえばbdutil、VM にインストールすると、以下が実行されます。

    ln -s ${HADOOP_CONF_DIR}/core-site.xml ${SPARK_INSTALL_DIR}/conf/core-site.xml
    

古い Spark ドキュメントでは、これにより、Spark のクラスパスに含まれる xml ファイルが自動的に作成されることが説明されています

  1. ${SPARK_INSTALL_DIR}/conf/spark-env.sh に次のエントリを追加します。

    export HADOOP_CONF_DIR=/full/path/to/your/hadoop/conf/dir
    

新しい Spark ドキュメントでは、これが今後の推奨される方法として示されているようです: https://spark.apache.org/docs/1.1.0/hadoop-third-party-distributions.html

于 2015-01-07T07:06:27.423 に答える