无法使用wasbs://...
网址从检查点恢复到Azure blob存储空间
在群集模式下使用Standalone Spark 2.0.2。
val ssc = StreamingContext.getOrCreate(checkpointPath, () => createSSC(), hadoopConf)
我通过fs.azure
中的fs.azure.account.key.$account.blob.core.windows.net
设置hadoopConf
和hadoopConf.set
,并通过sparkSession.sparkContext.hadoopConfiguration.set
作业在运行时成功写入检查点文件并运行直到我停止它。
当我重新启动它时,从检查点数据创建的上下文没有hadoopConf信息来重新访问wasbs://
存储并抛出错误,说它无法创建具有匿名访问权限的容器。
我错过了什么?我发现了一些关于S3的类似帖子,但没有明确的解决方案。
错误:
更多详细信息:从kafka 0.10.1.1连接器中的检查点重新启动后会发生这种情况,并且我已确认附加到该RDD的sparkContext.hadoopConf确实具有正确的密钥。
答案 0 :(得分:0)
解决方法:
将钥匙放入火花core-site.xml
。我试图避免这种情况,因为凭据是部署时设置 - 我不会在编译时或docker映像构建时设置它们。
在我的容器调用spark-submit
之前,它现在从下面的模板创建/opt/spark/conf/core-site.xml
文件:
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.azure</name>
<value>org.apache.hadoop.fs.azure.NativeAzureFileSystem</value>
</property>
<property>
<name>fs.azure.account.key.[CHECKPOINT_BLOB_ACCOUNT].blob.core.windows.net</name>
<value>[CHECKPOINT_BLOB_KEY]</value>
</property>
</configuration>