[英]spark-submit on kubernetes cluster does not recognise k8s --master property
[英]Does Spark 2.4.4 support forwarding Delegation Tokens when master is k8s?
我目前正在設置一個 Kerberized 環境,以便在 Kubernetes 中使用 Livy 提交 Spark 作業。
到目前為止我所取得的成就:
為了實現這一點,我對涉及的組件使用了以下版本:
我目前正在努力解決的問題:
嘗試從執行程序訪問 HDFS 時,我當前收到的錯誤消息如下:
org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]; Host Details : local host is: "livy-session-0-1575455179568-exec-1/10.42.3.242"; destination host is: "hdfs-namenode-0.hdfs-namenode.hdfs.svc.cluster.local":8020;
以下是目前的狀態:
由於 KNIME 將 jar 文件放在 HDFS 上,這些文件必須包含在 Spark 作業的依賴項中,因此能夠訪問 HDFS 非常重要。 (例如,KNIME 要求它能夠從數據集中檢索預覽數據)
我試圖找到解決方案,但不幸的是,還沒有找到任何有用的資源。 我查看了已檢查的UserGroupInformation.getCurrentUser().getTokens()
。 但是那個集合似乎是空的。 這就是為什么我認為沒有可用的委托令牌。
有沒有人曾經實現過這樣的運行並且可以幫助我解決這個問題?
謝謝大家!
對於為此苦苦掙扎的每個人:花了一段時間才找到為什么這不起作用的原因,但基本上它與 Spark 2.4.4 的 Kubernetes 實現有關。 沒有用於定義覆蓋CoarseGrainedSchedulerBackend
的fetchHadoopDelegationTokens
在KubernetesClusterSchedulerBackend
。
已經有一個pull request將通過將機密傳遞給包含委托令牌的執行者來解決這個問題。 它已經被拉入 master 並在 Spark 3.0.0-preview 中可用,但至少在 Spark 2.4 分支中不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.