hive怎样指定不同用户的默认yarn队列

hive怎样指定不同用户的默认yarn队列,每个用户查询SQL时都用各自的默认队列,不需要每次查询都先set tez.queue.name=**;

要为不同的用户指定默认的YARN队列,以便在查询时使用各自的默认队列,可以通过以下步骤进行配置:

  1. 在Hive中创建一个配置文件,例如 hive-site.xml

  2. 在配置文件中添加以下属性,为每个用户设置其默认的YARN队列。假设用户A的默认队列为 queueA,用户B的默认队列为 queueB

    <property>
      <name>hive.queue.default.a</name>
      <value>queueA</value>
    </property>
    
    <property>
      <name>hive.queue.default.b</name>
      <value>queueB</value>
    </property>
    ```
    
    注意,这里的 `a` 和 `b` 是用户标识符,您可以根据实际的用户标识符进行命名。
    
    
  3. 将配置文件 hive-site.xml 放置在Hive的配置目录中,通常是 $HIVE_HOME/conf 目录。

  4. 针对每个用户,将其对应的配置文件路径添加到其Hive会话的 HIVE_CONF_DIR 环境变量中。例如,在用户A的Hive会话中,可以执行以下命令:

    export HIVE_CONF_DIR=/path/to/a/hive-site.xml
    ```
    
    对于用户B,执行类似的命令,将 `HIVE_CONF_DIR` 设置为用户B的配置文件路径。
    
    

这样,当用户A和用户B分别启动Hive会话时,它们将使用各自的默认队列,而无需在每次查询时手动设置 tez.queue.name。Hive会根据用户标识符自动加载对应的配置文件,并使用其中定义的默认队列。

为不同用户指定默认的yarn队列,可以通过为每个用户配置不同的hive-site.xml来实现。hive-site.xml是Hive的配置文件,可以在其中设置一些全局的配置参数。

首先,你需要找到Hive的安装目录,然后在conf目录下创建一个新的hive-site.xml文件。

然后,按照以下格式为每个用户设置属性:

<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>
<property>
    <name>tez.queue.name</name>
    <value>queue_name</value>
</property>

其中,hive.execution.engine指定了Hive使用的执行引擎,这里设置为tez。tez.queue.name指定了用户的默认队列名称,将queue_name替换为对应的队列名称。

保存并关闭hive-site.xml文件。

然后,将这个配置文件复制到每个用户的$HOME/.hiveconf目录下,且文件名必须为hive-site.xml。每个用户都可以有自己独立的hive-site.xml文件,其中可以设置不同的默认队列。

这样,每个用户登录Hive时,Hive会自动加载该用户的hive-site.xml文件,并将其中的队列配置作为默认值。

这样一来,每个用户在查询SQL时就不需要每次都手动设置队列了,默认队列会根据其配置自动生效。