java - 无法连接到本地火花会话
问题描述
火花新手在这里。根据我在网上找到的说明,我在本地 Windows 开发机器上安装了 spark。WebUI 的 Spark 属性是
spark.app.name Spark shell
spark.driver.host 192.168.2.131
spark.driver.port 53796
spark.executor.id driver
spark.home C:\BigData\spark
spark.master local[*]
现在,在我本地机器上的 java web 应用程序中,当我尝试使用代码创建到 spark 会话的连接时,会创建一个新的本地 spark 会话,它指向不同的主机和端口,即使在同一台机器上。
SparkConf conf = new SparkConf()
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
Globals.spark = SparkSession.builder()
.master("local[2]")
.appName("test")
.config(conf)
.getOrCreate();
新创建的火花会话的属性
spark.app.name test
spark.driver.host 192.168.2.198
spark.driver.port 57755
spark.executor.id driver
spark.master local[2]
如何连接到已在本地计算机上运行的 spark 会话?我想这样做是因为我希望能够在我的本地机器中添加执行程序并修改属性,以便在应用程序进入生产集群之前对其进行调试。
解决方案
这不是 Spark 的工作方式:一旦运行,您就无法从外部连接到 Spark 会话。如果你想调它,修改一些参数,你必须先做。
查看https://developer.ibm.com/code/open/projects/spark-bench/。Spark Bench 将允许您以自动方式执行此操作。我希望这将帮助您解决您的用例。