2017-03-29 132 views
0

不能從檢查點到Azure的Blob存儲與wasbs://...網址火花的StreamingContext沒有hadoopConf設置

在集羣模式下使用獨立星火2.0.2恢復。

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

我通過hadoopConfhadoopConf.set在createSSC功能通過sparkSession.sparkContext.hadoopConfiguration.set

作業成功寫入檢查點文件運行時設置fs.azurefs.azure.account.key.$account.blob.core.windows.net和冗餘並運行,直到我停止它。

當我重新啓動它時,從檢查點數據創建的上下文沒有hadoopConf信息來重新訪問存儲併發出錯誤,指出它無法使用匿名訪問創建容器。

我錯過了什麼?我發現了幾個關於S3的類似帖子,但沒有明確的解決方案。

錯誤:

enter image description here

更多細節:發生這種情況從卡夫卡0.10.1.1連接器內部檢查點重新啓動後,我已經證實,連接到該RDD的sparkContext.hadoopConf確實有正確的鑰匙。

回答

0

解決方法:

把鑰匙火花core-site.xml。我試圖避免這種情況,因爲憑據是部署時間設置 - 我不會在編譯時或docker映像構建時設置這些值。

我的容器調用​​之前,它現在創建從下面的模板/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>