【发布时间】:2017-10-22 11:47:22
【问题描述】:
我正在尝试使用 spark-submit.sh 在 Bluemix 上运行 Spark+Scala 应用程序。到目前为止,基于documentation和sourcecode我想出了以下sn-p:
val spark: SparkSession = SparkSession
.builder
.appName("app")
.config("spark.hadoop.fs.cos.softlayer.endpoint",
"s3-api.us-geo.objectstorage.service.networklayer.com")
.config("spark.hadoop.fs.cos.softlayer.access.key",
"auto-generated-apikey-<redacted>")
.config("spark.hadoop.fs.cos.softlayer.secret.key",
"<redacted>")
.getOrCreate()
spark.sparkContext.setLogLevel("TRACE")
spark.sparkContext.textFile("s3d://<bucket>.softlayer/<file>")
失败了
Exception in thread "Driver" java.lang.NullPointerException
at com.ibm.stocator.fs.common.ObjectStoreGlobber.glob(ObjectStoreGlobber.java:179)
at com.ibm.stocator.fs.ObjectStoreFileSystem.globStatus(ObjectStoreFileSystem.java:443)
at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:259)
由于
DEBUG apache.http.headers: http-outgoing-0 << HTTP/1.1 403 Forbidden
我相信 403 的意思是“身份验证成功,但授权失败”,但即使我将凭据更改为随机的,我仍然会得到 403。
我将我的服务帐户配置为所有“云对象存储”资源的阅读器。
我在python 中使用相同的凭据。
我错过了什么?
【问题讨论】:
标签: scala apache-spark ibm-cloud object-storage