Hadoop数据源及计算源支持二段式Principal

背景说明


Principal(主体)是系统中的身份,如hadoop namenode等被赋予身份的人或事物。在Hadoop中,通常为集群中的每个服务和计算机创建不同的主体,例如hdfs/node1、hdfs/node2、...等等。这些主体将用于运行在node1、node2等上的所有HDFS守护程序。

Kerberos用户Principal有两部分组成:username@company.com。只有基于主机的服务主体有3个部分 (额外的部分是运行服务的主机),如principal=hive/cdh-master@COMPANY.COM。

在beeline connect字符串中,您应该始终对要连接的HiveServer2实例使用hive服务主体。另一种选择是使用 _ HOST而不是特定的主机名,该主机名将扩展为正确的主机。


三段式(即基于主机的服务主体)的Principal有几个问题:

  1. 当重启集群后,需要重新生成keytab文件,导致运维成本和复杂度增加
  2. 客户出于安全考虑,在生产环境中往往使用的是两段式principal如:XXX@DATAPHIN.COM

因此Dataphin从V2.9版本开始支持二段式Principal的配置。以下的配置支持Hadoop计算源以及Hadoop相关的数据源,但仅以Hadoop数据源为例。


配置说明

前置条件:

① 集群已经做好Kerberos相关的配置

② 已经准备好用户Principal的keytab文件


HDFS


在创建HDFS数据源连接时支持简单模式和Kerberos模式。简单方式在此不再赘述。若需使用二段式Principal进行认证,则

  1. 开启Kerberos认证
  2. 使用用户Principal的keytab文件
  3. 填入用户Principal



Hadoop数据源及计算源支持二段式Principal



Hive


Hive的连接方式目前Dataphin支持三种场景:简单模式,Kerberos(二段式及三段式),ZooKeeper HA模式。对于简单方式使用username和password方式登录,不再赘述。

配置Hive 数据源时,JDBC URL的Principal需要是Server级别的Principal,但是使用用户Principal及其keytab文件如:

jdbc:hive2://cdh-master:2181,cdh-worker01:2181,cdh-worker02:2181/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2_zk;principal=hive/cdh-master@DATAPHIN.COM


Hadoop数据源及计算源支持二段式Principal


Impala

保持与三段式的Kerberos Principal相同,JDBC URL如:

jdbc:impala://cdh-master:21050/default;AuthMech=1;KrbServiceName=impala;KrbRealm=DATAPHIN.COM;KrbHostFQDN=cdh-master


Keytab使用用户Principal的Principal。如下图所示:

Hadoop数据源及计算源支持二段式Principal

HBase

  • 连接地址:hbase.zookeeper.quorum的地址,如:cdh-worker02:2181,cdh-master:2181,cdh-worker01:2181
  • 配置文件:可选上传hbase-site.xml
  • Kerberos:设置为开启
  • KDC Server:输入KDC的地址或切换为krb5文件
  • KeytabFile:上传用户的Keytab文件,可用kinit生成
  • Principal:设置用户Principal


Hadoop数据源及计算源支持二段式Principal



上一篇:应用性能管理—uniapp移动端崩溃


下一篇:拼不过 GO?阿里如何重塑云上的 Java