我正在尝试运行存储在AWS S3中的python文件。我正在使用以下REST调用:
curl -X POST http://localhost:6066/v1/submissions/create --header "Content-Type:application/json;charset=UTF-8" --data '{
"action" : "CreateSubmissionRequest",
"appArgs" : [ "s3n://<bucket-Name>/pi.py" ],
"appResource" : "s3n://<bucket-Name>/pi.py",
"clientSparkVersion" : "1.6.1",
"environmentVariables" : {
"SPARK_ENV_LOADED" : "1"
},
"mainClass" : "org.apache.spark.deploy.SparkSubmit",
"sparkProperties" : {
"spark.driver.supervise" : "false",
"spark.app.name" : "Simple App",
"spark.eventLog.enabled": "true",
"spark.submit.deployMode" : "cluster",
"spark.master" : "spark://localhost:6066"
}
}'
但我收到错误:
java.io.IOException: No FileSystem for scheme: s3n
我尝试了同样的调用,除了文件在我的本地机器上并且它有效。如何在REST调用中设置fs.s3n.impl,fs.s3n.awsAccessKeyId和fs.s3n.awsSecretAccessKey值?
请帮忙。
答案 0 :(得分:0)
你的CP上需要hadoop-aws JAR,以及jets3t 0.90 JAR;默认情况下应该包含后者(hadoop将所有aws内容移动到当前未包含在Spark中的JAR中,参见)。
如果您使用的是Hadoop 2.7+,我建议您升级到使用s3a网址,这是较新的客户端;它需要相同的JAR以及Yuval提到的AWS SDK。
请参阅:http://www.slideshare.net/steve_l/hadoop-hive-spark-and-object-stores