簡體   English   中英

在 spark 中從 hdfs(也嘗試使用 s3)提取 kafka jks 證書時出錯

[英]Error while pulling kafka jks certificates from hdfs (trying with s3 as well) in spark

我在集群模式下運行 spark,它給出了錯誤

ERROR SslEngineBuilder: Modification time of key store could not be obtained: hdfs://ip:port/user/hadoop/jks/kafka.client.truststore.jks
java.nio.file.NoSuchFileException: hdfs:/ip:port/user/hadoop/jks/kafka.client.truststore.jks

我運行了以下命令並驗證了該位置是否存在 jks 文件。

hadoop fs -ls hdfs://ip:port/user/hadoop/\<folder1\>

我寫了下面的代碼來連接到 spark 項目中的 kafka。

火花代碼:

sparkSession.readStream
.format("kafka")
.option("kafka.bootstrap.servers", )
.option("subscribe", )
...
.option("kafka.ssl.keystore.password", "pswd")
.option("kafka.ssl.key.password", "pswrd"))      
.option("kafka.ssl.truststore.location","hdfs:///node:port/user/hadoop/\<folder1\>/kafka.client.truststore.jks")
.option("kafka.ssl.keystore.location", "hdfs:///node:port/user/hadoop/\<folder1\>/kafka.client.keystore.jks")
  1. 請建議缺少什么?

  2. 如何在 s3 中使用 jks 文件實現相同的目的?

您需要在spark-submit選項上使用--files s3a://... (或與hdfs ),或在內置的 session 中使用spark.files選項。

然后你可以直接按名稱引用這些文件(而不是完整路徑),因為它們是通過 Spark 執行程序的相對路徑查找的。

要從 S3 讀取數據,您還需要(安全地)定義您的 S3 訪問密鑰(即不是您的 Spark 代碼中的明文)。 使用hdfs-site.xml資源文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM