跳到主要内容

HiveServer2 模式

在 HivePlus 中,HiveServer2 可以运行在共享会话模式独立会话模式

共享会话模式下的 HiveServer2

在共享会话模式下,HiveServer2 维护一个会话(通过创建一个 MR3Session 对象),供所有 Beeline 连接共享。此会话创建一个 DAGAppMaster 来处理所有通过 Beeline 连接提交的 Hive 查询,并且从这些 Hive 查询生成的 DAG 可以将 TaskAttempts 发送到任何 ContainerWorker。因此,所有 Beeline 连接通过一个共同的 DAGAppMaster 共享整个 ContainerWorker 池。

shared.session

独立会话模式下的 HiveServer2

在独立会话模式下,每个 Beeline 连接创建自己的会话(通过创建一个新的 MR3Session 对象),不与其他任何 Beeline 连接共享。每个 DAGAppMaster 维护自己的 ContainerWorker 池,这些资源对其他会话不可见。因此,Beeline 连接之间不存在 ContainerWorker 的共享。通常,共享会话模式能够更好地利用计算资源,因为 ContainerWorker 可以为任何 DAG 中的任何 TaskAttempt 服务。

individual.session

如果 hive-site.xmlhive.server2.mr3.share.session 设置为 true,则启用共享会话模式。要使用独立会话模式,应将 hive.server2.mr3.share.session 设置为 false,且不应在 HiveServer2 Pod 中设置环境变量 MR3_APPLICATION_ID_TIMESTAMP