2017-02-10 7 views
0

英語が貧しい、申し訳ありませんが、本当に助けが必要です。 私はspark-2.0.0-bin-hadoop2.7hadoop2.7.3を使用します。 s3からログを読み取り、結果をローカルhdfsに書き込みます。私はスパークドライバを使用してスタンドアロンモードを正常に実行できます。しかし、私は糸モードで同じドライバを実行します。それは私が行うことができますどのようにaws-java-sdk-1.7.4.jar and hadoop-aws-2.7.3.jar糸に点火するjava.io.IOException:いいえFileSystem for scheme:s3n

を見つけることができませんする必要があり、それはだと思っ

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/* 

run hadoop fs -ls s3n://xxx/xxx/xxx, can list files. 

を追加

17/02/10 16:20:16 ERROR ApplicationMaster: User class threw exception: java.io.IOException: No FileSystem for scheme: s3n 

hadoop-env.shをスローします。

答えて

1

私はあなたと同じバージョンを使用しますが、ここでS3A作業を取得する必要があった私の[spark_path]/confに/ 火花-defaults.confにファイルの抽出物ではありませんよ。

# hadoop s3 config 
spark.driver.extraClassPath [path]/guava-16.0.1.jar:[path]/aws-java-sdk-1.7.4.jar:[path]/hadoop-aws-2.7.2.jar 
spark.executor.extraClassPath [path]/guava-16.0.1.jar:[path]/aws-java-sdk-1.7.4.jar:[path]/hadoop-aws-2.7.2.jar 
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem 
spark.hadoop.fs.s3a.access.key [key] 
spark.hadoop.fs.s3a.secret.key [key] 
spark.hadoop.fs.s3a.fast.upload true 

代わりにあなたが提出する仕事に--jarsオプションにコンマ区切りの形式でのjarファイルへのパスを指定することができます。

--jars [path]aws-java-sdk-[version].jar,[path]hadoop-aws-[version].‌​‌​jar 

注:

  • jarファイルを確認してくださいは
  • クラスタ内のすべてのノード上の同じ場所にいるあなたのパス
  • で[パス]を置き換え、希望のプロトコル(私はS3Aは最高でしたがチェック最後の時間)
  • でS3Aを交換してください私はグアバがS3A作業を取得するために必要とされるとは思わないが、私は、スパークビットの残りの部分と、SPARK_HOME/lib
+0

は非常に多くのお返事ありがとうございました。しかし、それは問題を解決することはできません。 $ {base_dir} /spark-2.0.0-bin-hadoop2.7/のように私は私のドライバを嫌ってaws-java-sdk- [version] .jar /hadoop-aws-[version].jarを追加します。 bin/spark-submit \ --class com.csloter.xxx \ - master [master] \ --deploy-mode client \ --jars [path] aws-java-sdk- [version] .jar :[パス] hadoop-aws- [バージョン] .jar --name DRIVERNAME \ $ {job_dir} /xxx-statistics_2.11-1.0.jar – csloter

+0

--jarsオプションはコロンで区切られていません。コンマで区切られていますので、試してみてください'--jars [path] aws-java-sdk- [version] .jar、[path] hadoop-aws- [version] .jar' – ImDarrenG

+0

あなたはそうです。私のせい。それは-jars [パス] aws-java-sdk- [バージョン] .jar、[パス] hadoop-aws- [バージョン] .jar – csloter

0
  1. スティックJARを思い出すことができません。
  2. spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystemは不要です。 JARは自動的にスキャンされ、取得されます。
  3. スレッドプールオプションのいくつかをチューニングする準備ができていない場合は、fast.output.enabledを2.7.xで再生しないでください。そのオプションなしで起動します。
+0

SPARK_HOMEの下に** lib ** dirが見つかりません。spark-2.0.0-bin-hadoop2を使用しています。7、私は新しいものを作るべきですか? – csloter

+0

'$ SPARK_HOME/lib'ディレクトリがあるはずです:もしスパーク2になければ、おそらくどこかにインストールされています。どのディレクトリにもspark- *とhadoop- * JARが残りの部分(log4j、jackson、netty、kryo、...)と一緒にあれば、新しいJARを追加する必要があります –

0

$SPARK_HOME/jarsにこれらのjarファイルを追加します。

ws-java-sdk-1.7.4.jar,hadoop-aws-2.7.3.jar,jackson-annotations-2.7.0.jar,jackson-core-2.7.0.jar,jackson-databind-2.7.0.jar,joda-time-2.9.6.jar 
関連する問題