启动spark-sql执行sql时,在监控页面中看到该Application的Name是SparkSQL:hadoop000(其中hadoop000是测试机器的hostname),就有个想法,修改下该application的name,在spark-sql --help中看到--name NAME的参数设置,于是乎就在启动spark-sql时设置参数:
spark-shell --name test
启动后发现该Application的Name还是SparkSQL:hadoop000,启动时指定的参数并没有生效,翻了下源码才知道原来是在SparkSQLCLIDriver启动过程中设置了SparkSQLEnv的信息,在SparkSQLEnv.init方法中
def init() { if (hiveContext == null) { val sparkConf = new SparkConf() .setAppName(s"SparkSQL::${java.net.InetAddress.getLocalHost.getHostName}") .set("spark.sql.hive.version", HiveShim.version) sparkContext = new SparkContext(sparkConf) ... } }
由于代码中设置的属性优先级大于命令行设置的属性,所以spark-sql启动的Application Name一直都是SparkSQL:hadoop000,属性设置参见spark1.0属性配置以及spark-submit简单使用
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步