本文介绍了从检查点加载的电光流上下文没有hadoopConf设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无法使用wasbs://...url从检查点恢复到Azure Blob存储

在群集模式下使用独立Spark 2.0.2。

val ssc = StreamingContext.getOrCreate(checkpointPath, () => createSSC(), hadoopConf)

我通过hadoopConf.set中的hadoopConf设置了fs.azurefs.azure.account.key.$account.blob.core.windows.net,并通过sparkSession.sparkContext.hadoopConfiguration.set在createSSC函数中冗余地设置了sparkSession.sparkContext.hadoopConfiguration.set

作业在运行时成功写入检查点文件,并一直运行到我停止它为止。

当我重新启动它时,从检查点数据创建的上下文没有hadoopConf信息来重新访问wasbs://存储,并引发错误,指出它无法创建具有匿名访问的容器。

我错过了什么?我发现了几个关于S3的类似帖子,但没有明确的解决方案。

错误:

更多详细信息:在从Kafka 0.10.1.1连接器内的检查点重新启动并且我已确认附加到该RDD的starkConext.hadoopConf确实具有正确的密钥后,会发生这种情况。

推荐答案

解决方法:

把钥匙放在火花里core-site.xml。我试图避免这种情况,因为凭据是部署时设置的--我不会在编译时或坞站映像构建时设置它们。

在我的容器调用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>

这篇关于从检查点加载的电光流上下文没有hadoopConf设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-20 15:57