我在本地模式下使用spark(master = "local[*]"
,请参见下面的代码)。如何将主端口从8080
更改为其他端口(在这种情况下,由于8080
已被占用,我需要这样做)。而且,由于已被占用,Spark Master似乎只是不启动其Web ui。
SparkConf conf = new SparkConf()
.setMaster("local[*]")
.setAppName("Local RESTWS ML");
return SparkSession
.builder()
.config(conf)
.getOrCreate();
}
我尝试设置SPARK_MASTER_WEBUI_PORT
环境变量没有成功。
答案 0 :(得分:1)
在本地模式下运行spark时,不需要启动主节点。如果您只是运行发布的代码而没有启动母版,则您不会拥有母版webui。相反,您仍将在端口4040上拥有sparkContext Web ui。如果您想更改该端口:
SparkConf conf = new SparkConf()
.setMaster("local[*]")
.setAppName("Local RESTWS ML")
.set("spark.ui.port", "4041");
或者如果您想跳过SparkConf:
return SparkSession
.builder()
.appName("Local RESTWS ML")
.master("local[*]")
.config("spark.ui.port", "4041")
.getOrCreate();
答案 1 :(得分:1)
env变量SPARK_MASTER_WEBUI_PORT
仅在独立模式下有效。
几个选择。
spark.ui.port
或作为参数传递给spark-submit调用,例如spark-submit --conf spark.ui.port=xxxx
注意:如果给定端口不可用,请尝试下一个端口,直到有可用端口为止(由spark.port.maxRetries
控制,默认为16)。例如,如果spark.ui.port
是1000,并且直到1016年没有可用端口,则Spark UI调出将失败