私は、EC2インスタンス上にスパークスタンドアローンを設定しました。私はクラスタモードを使用してSparkアプリケーションを提出しようとしています。 jarはS3にあり、IAMの役割を介してJAMへのアクセスが設定されます。私はaws s3 cp s3://bucket/dir/foo.jarを実行できます。 jarファイルを取得する - それはうまく動作します。しかし、私が以下を実行したとき:s3からspark submit clusterモード
spark-submit --master spark://master-ip:7077 --class Foo
--deploy-mode cluster --verbose s3://bucket/dir/foo/jar
私は以下のようなエラーが表示されます。ボックスにアクセスを許可するようにIAMロールが設定されていることを確認すると、ジョブをサブミットする正しい方法は何でしょうか?ジョブ自体はS3を全く使用していません...問題はS3からそのジャーをフェッチしているようです。
ご協力いただければ幸いです。
16/07/04 11:44:09 ERROR ClientEndpoint: Exception from cluster was: java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3 URL, or by setting the fs.s3.awsAccessKeyId or fs.s3.awsSecretAccessKey properties (respectively).
java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3 URL, or by setting the fs.s3.awsAccessKeyId or fs.s3.awsSecretAccessKey properties (respectively).
at org.apache.hadoop.fs.s3.S3Credentials.initialize(S3Credentials.java:66)
at org.apache.hadoop.fs.s3.Jets3tFileSystemStore.initialize(Jets3tFileSystemStore.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
at com.sun.proxy.$Proxy5.initialize(Unknown Source)
at org.apache.hadoop.fs.s3.S3FileSystem.initialize(S3FileSystem.java:77)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1446)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1464)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:263)
at org.apache.spark.util.Utils$.getHadoopFileSystem(Utils.scala:1686)
at org.apache.spark.util.Utils$.doFetchFile(Utils.scala:598)
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:395)
at org.apache.spark.deploy.worker.DriverRunner.org$apache$spark$deploy$worker$DriverRunner$$downloadUserJar(DriverRunner.scala:150)
at org.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:79)
スパークはIAMの役割の操作方法を知っていません。私たちもここで試してみたところ、失敗したと思う。また、クラスタモードでスパークジョブを送信するとき、正しくリコールすると、ポートは通常6066にデフォルト設定されます。左上のSpark UIでポートを表示できます。 –
最後に何をしましたか?私は瓶をダウンロードしようとしました。クライアントモードは動作しますが、クラスタモードではjarをノードにコピーしていないようです。 – ashic
クライアントモードは、SparkがクラスタモードでS3にアクセスする必要があるワーカーにワーカーを配布するJetty HTTPサーバーを設定するため動作します。現在、クライアントモードでストリーミングジョブを実行しています。 –