hive 使用同一个session执行不同的sql注意事项

问题

最近在hue上开多个窗口执行不同的sql的时候,发现如果在某个窗口里面设置某些properties的时候(比如 set spark.executor.memory=10g),会导致其他窗口里面执行的sql失败。
注: 我们使用spark作为默认的执行引擎 (即 set hive.execution.engine=spark)

原因

原因是因为 当你在hue上用某个账户登录之后,执行第一个sql的时候,hue会get 到hive的一个connection,hive也会在yarn上创建一个spark的应用,获得到一个session。而多窗口执行sql其实是共用的这一个session。所以如果你在同一个session里面做查询的时候是没问题的,你可以同时跑很多的sql,但是如果你set properties的时候就会有问题。因为session是在创建的时候加载properties的,所以如果你set properties的话就会需要重新创建这个session。也就是说会断开老的 session创建一个新的session,那么你在跑的其他窗口的查询就会失败。

你可能感兴趣的:(hive 使用同一个session执行不同的sql注意事项)