互联网&大数据应用学习玩转大数据@IT·互联网

HiveServer2-HA-安全架构

2017-09-20  本文已影响226人  PunyGod

赴海獨漂櫓,白首度餘生。 -- 木心
Just For M

前言

为了梳理 apache sentry_1.5.0 开启 hdfs sync 功能后 不再支持hs2的Metastore HA 的原因,最近把�HiveServer2 的部署架构梳理了一遍,网上针对该类信息的文章也非常少,特地在这里整理出来,以供大家讨论。

先描述一下我们的 HiveServer2 的部署背景,我们的大数据平台是CDH, 整个平台使用 KERBEROS 来进行身份验证,权限控制使用的是 Sentry + Acls, 我们的 HiveServer2 服务使用 LDAP 或者 KERBEROS 来对用户进行身份验证,实际上开启 LDAP 验证的 HiveServer2 也是可以进行 KERBEROS 验证的,但是 hive on spark 这个功能的开启,导致了 HiveServer2 必须是 KERBEROS 验证的(他们使用了一个相同的config来进行判断提交任务是否需要 KERBEROS)。

一般情况下部署 HiveServer2 ,大家应该很熟悉。Metastore 可以选择是 内嵌 还是 单独部署,为了保证服务的高可用性(HA),我们可能会部署多台 HiveServer2 以及 多台 Metastore,他们也起到了负载均衡的效果。而在安全的情况下,配置的时候需要些许注意,而 HiveServer2 内部也会多执行一些东西来保证认证安全,下面我们所要讲的就是这些流程。

HiveServer2

image.png

图例展示了一个通用的部署模式: HiveServer2 多台,Metastore 多台,使用 mysql 等关系型数据库来保存元数据信息。 HiveServer2 如果需要修改元数据信息,会将请求发送到 Metastore
HiveServer2 使用 Thrift 来进行通信, 用户使用 jdbc 或者 Thrift 连接到 HiveServer2; HiveServer2 每个执行线程如果需要与后面的 Metastore 通信也是使用 Thrift 连接。

ThrfitSasl

看过 kerberos体系下的应用(yarn,spark on yarn) 的用户可能已经对 ThrfitSasl 连接方式了解了,我们这里将描述一下通信过程:

image.png
KERBEROS认证
image.png
Token认证

想一想,如果我们要效仿HDFSDelegation Token逻辑,在实现上我们需要什么?

image.png image.png

上述应该是使用 Token 认证的各个部分的注意事项。

Token认证-服务端

服务端(e.g: Metastore)使用 HiveDelegationTokenManager 来进行Token管理。类中主要包含了一个继承自hadoop-common AbstractDelegationTokenSecretManagerTokenStoreDelegationTokenSecretManager,也是我们这节探讨的重点。

Token认证-DelegationTokenStore

Metastore提供三种存储方式:

第一种是内存,这里不做解读,对于后两者,为什么 Metastore 要把这部分数据统一持久化呢?我们持久化的是什么信息?我们持久化的大部分是可以使用的Token,当验证Token认证的客户端的时候将时候到这部分信息。

如果我们部署了多台Metastore, HiveServer2 随机选择一台进行连接操作,如果我们打开了doAs,那么我们业务线程连接Metastore将使用Token认证。这个时候我们已经连接的Metastore突然挂掉,客户端重连到了另外一台Metastore上去,因为我们知道Metastore是无状态的,所以重连到新的机器上不影响业务数据。但是新的Metastore如果认证这个Token? 是的!! 因为它们的所有Metastore 所有的Token信息都是共享的,新的Metastore 轻而易举的就通过了重连的客户端认证。

总结


读完全文之后,希望读者重新查看本文的�HiveServer2-HA-架构图,其实想表达的逻辑都在图中。这里需要重点注意的是,我们在部署 Metastore HA后,如果开启了Token认证,请务必使用DBTokenStore或者ZooKeeperTokenStore,否则HiveServer2Metastore 的断开重连对用户不透明。但是如果只会使用KERBEROS认证,则不会存在Token共享问题。

上一篇下一篇

猜你喜欢

热点阅读