4

私のaws EC2マシンにZeppelinをインストールして、スパーククラスターに接続しました。

Spark バージョン: スタンドアロン: spark-1.2.1-bin-hadoop1.tgz

私のユースケースで S3 のファイルにアクセスしようとすると、spark クラスターに接続できますが、次のエラーが発生します。

コード:

    sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
    sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey","YOUR_SEC_KEY")
    val file = "s3n://<bucket>/<key>"
    val data = sc.textFile(file)
    data.count


file: String = s3n://<bucket>/<key>
data: org.apache.spark.rdd.RDD[String] = s3n://<bucket>/<key> MappedRDD[1] at textFile at <console>:21
ava.lang.NoSuchMethodError: org.jets3t.service.impl.rest.httpclient.RestS3Service.<init>(Lorg/jets3t/service/security/AWSCredentials;)V
    at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.initialize(Jets3tNativeFileSystemStore.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)

次のコマンドで Zeppelin をビルドしました。

mvn clean package -Pspark-1.2.1 -Dhadoop.version=1.0.4 -DskipTests

Hadoop プロファイル "-Phadoop-1.0.4" でビルドしようとすると、存在しないという警告が表示されます。

このスパークのウェブサイトに記載されている -Phadoop-1 も試しました。しかし、同じエラーが発生しました。 1.x から 2.1.x の hadoop-1

ここで何が欠けているか教えてください。

4

2 に答える 2

2

次のインストールは私にとってはうまくいきました(問題にも何日も費やしました):

  1. EC2 クラスターでの Hadoop 2.3 セットアップ用の Spark 1.3.1 プレビルド

  2. git クローンhttps://github.com/apache/incubator-zeppelin.git (日付: 25.07.2015)

  3. 次のコマンドを使用して zeppelin をインストールしました ( https://github.com/apache/incubator-zeppelinの手順に属します)。

    mvn クリーン パッケージ -Pspark-1.3 -Dhadoop.version=2.3.0 -Phadoop-2.3 -DskipTests

  4. 「conf/zeppelin-site.xml」を介してポートを 8082 に変更します (Spark はポート 8080 を使用します)

このインストール手順の後、ノートブックは S3 ファイルで動作しました。

sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "xxx")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey","xxx")
val file = "s3n://<<bucket>>/<<file>>"
val data = sc.textFile(file)
data.first

Zeppelin バージョン 0.5.0 では S3 の問題は完全には解決されていないと思うので、実際の git-repo を複製することで解決しました。

重要な情報: このジョブは、zeppelin spark-interpreter 設定master=local[*] (spark://master:7777 を使用する代わりに) を使用した場合にのみ機能しました。

于 2015-07-25T13:50:05.647 に答える
-1

私にとっては、2つのステップで機能しました-

1. creating sqlContext -
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
2. reading s3 files like this. - 
val performanceFactor = sqlContext.
      read.  parquet("s3n://<accessKey>:<secretKey>@mybucket/myfile/")

アクセスキーと秘密キーを指定する必要があります。#2では、パス自体にs3nプロトコルとアクセスキーと秘密キーを使用しています。

于 2016-12-05T12:07:42.293 に答える