[ https://issues.apache.org/jira/browse/HIVE-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15280475#comment-15280475 ]
Marcelo Vanzin commented on HIVE-13308: --------------------------------------- There needs to be a synchronization block to access the {{server}} field; otherwise, it's probably safe to call the {{SparkClientImpl}} constructor outside of a synchronized block, as long as {{SparkClientFactory.stop()}} is not called before it finishes. Something like: {code} public static SparkClient createClient(Map<String, String> sparkConf, HiveConf hiveConf) throws IOException, SparkException { RpcServer _server; synchronized (SparkClientFactory.class) { Preconditions.checkState(server != null, "initialize() not called."); _server = server; } return new SparkClientImpl(_server, sparkConf, hiveConf); } {code} Or maybe just making the {{server}} variable volatile would suffice, too (and then no synchronization is needed in {{createClient}}). > HiveOnSpark sumbit query very slow when hundred of beeline exectue at same > time > ------------------------------------------------------------------------------- > > Key: HIVE-13308 > URL: https://issues.apache.org/jira/browse/HIVE-13308 > Project: Hive > Issue Type: Bug > Components: Spark > Affects Versions: 1.2.1 > Reporter: wangwenli > Original Estimate: 1h > Remaining Estimate: 1h > > backgroud: hive on spark , yarn cluster mode > details: > when using hundred of beeline submit query at the same time, we found that > yarn get application very slow, and hiveserver is blocked at > SparkClientFactory.createClient method > after analysis, we think the synchronize on SparkClientFactory.createClient , > can be removed -- This message was sent by Atlassian JIRA (v6.3.4#6332)