簡體   English   中英

創建主節點設置為 k8s 的 SparkSession

[英]Create SparkSession with master set to k8s

為 Spark over K8s 開發 POC(Spark 版本 2.4.4)。

我能夠使用 spark-submit 調用 spark 作業:

bin/spark-submit --master k8s://https://localhost:8443 --deploy-mode cluster --conf spark.executor.instances=5 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.kubernetes.container.image=liranbo/k8s-test4:latest --class org.apache.spark.examples.SparkPi --name spark-pi local:///opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar 40

嘗試使用 SparkSession 構建器以編程方式執行相同操作。

SparkSession.builder().appName(appName).master("k8s://https://localhost:8443")

我得到以下異常

org.apache.spark.SparkException: Could not parse Master URL: 'k8s://https://localhost:8443'
at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2784)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:493)
at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520)
at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$5(SparkSession.scala:935)
at scala.Option.getOrElse(Option.scala:138)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926)
at SparkPi.startBySparkSessionBuilder(SparkPi.java:46)
at Runner.main(Runner.java:9)

使用 SparkSession 時是否可以將主 url 設置為 K8s? 如果不是,為什么 spark-submit 支持?

順便說一句:我能夠使用SparkLauncher以編程方式啟動應用程序,但這不是我想要的解決方案。

我在sparkPy中看到了一個(可能)工作示例。

以防萬一有人遇到同樣的問題 - 該問題與缺少 jar 有關。 添加以下內容:

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-kubernetes_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

暫無
暫無

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

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