目前我已經minikube在我的本地機器上部署了 Spark。Pod 及其容器已啟動并正在運行,并且我已經檢查了該埠7077正在從主機(本地機器)偵聽。
現在我想spark-submit從主機。c:\bin\spark-3.2.1-bin-hadoop3.2因此,我下載了 Spark 的二進制檔案并將它們移動c:\bin\spark-3.2.1-bin-hadoop3.2\bin到PATH.
當我運行spark-submit如下...
spark-submit --class org.apache.spark.deploy.dotnet.DotnetRunner --master spark.local:7077 microsoft-spark-3-2_2.12-2.1.1.jar dotnet C:\projects\xxx\xxx-dotnet-solution\xx-services/infrastructure/etl-service/Spark/bin/Debug/netcoreapp3.1/xxx.xx.Services.Infraestructure.ETLService.Spark.dll
...我收到以下錯誤org.apache.spark.SparkException: Could not parse Master URL: 'spark.local'。
我不確定我是不是弄錯了,也許問題是我不能spark-submit從我的本地機器到遠程 Spark。這有可能嗎?
uj5u.com熱心網友回復:
根據主 URL 檔案,該引數接受一些關鍵字,如local,yarn或特定的 URL 協議,spark://, mesos://, k8s://。它不能處理機器或域名。
在.NET for Apache Spark 教程中,該命令使用local關鍵字,而不是主機名:
spark-submit ^
--class org.apache.spark.deploy.dotnet.DotnetRunner ^
--master local ^
microsoft-spark-3-0_2.12-<version>.jar ^
dotnet MySparkApp.dll <path-of-input.txt>
從檔案:
傳遞給 Spark 的主 URL 可以是以下格式之一:
主網址 意義 當地的 使用一個作業執行緒在本地運行 Spark(即根本沒有并行性)。 本地[K] 使用 K 個作業執行緒在本地運行 Spark(理想情況下,將其設定為您機器上的內核數)。 本地[K,F] 使用 K 個作業執行緒和 F 個 maxFailures 在本地運行 Spark(有關此變數的說明,請參見 spark.task.maxFailures)。 當地的[*] 在本地運行 Spark,作業執行緒與機器上的邏輯核心一樣多。 本地[*,F] 在本地運行 Spark,作業執行緒數與您機器上的邏輯核心數和 F maxFailures 數一樣多。 本地集群[N,C,M] 本地集群模式僅用于單元測驗。它在單個 JVM 中模擬分布式集群,具有 N 個作業器,每個作業器 C 核和每個作業器 M MiB 記憶體。 火花://主機:埠 連接到給定的 Spark 獨立集群主節點。埠必須是您的主服務器配置使用的埠,默認為 7077。 火花://HOST1:PORT1,HOST2:PORT2 使用 Zookeeper 連接到具有備用 master 的給定 Spark 獨立集群。該串列必須包含使用 Zookeeper 設定的高可用性集群中的所有主控主機。埠必須是每個主設備配置使用的埠,默認為 7077。 mesos://HOST:PORT 連接到給定的 Mesos 集群。埠必須是您配置使用的埠,默認為 5050。或者,對于使用 ZooKeeper 的 Mesos 集群,使用 mesos://zk://...。要使用 --deploy-mode 集群提交,應將 HOST:PORT 配置為連接到 MesosClusterDispatcher。 紗 根據 --deploy-mode 的值,以客戶端或集群模式連接到 YARN 集群。將根據 HADOOP_CONF_DIR 或 YARN_CONF_DIR 變數找到集群位置。 k8s://HOST:PORT 根據 --deploy-mode 的值,以客戶端或集群模式連接到 Kubernetes 集群。HOST 和 PORT 指的是 Kubernetes API 服務器。它默認使用 TLS 連接。為了強制它使用不安全的連接,你可以使用 k8s://http://HOST:PORT。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518522.html
