spark-sql启动后在监控页面中显示的Application Name为SparkSQL::xxxx的疑问

启动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简单使用

 

你可能感兴趣的:(application)