使用直线时,连接到撵上启用了Kerberos EMR集群为什么我们使用Hive服务主体?

问题描述 投票:0回答:1

我试图连接使用EMR集群上直线(启用了Kerberos)来撵,我想知道为什么我会跑的kinit(使用我的用户帐户),然后执行以下操作:

beeline -u "jdbc:hive2://localhost:10000/default;principal=hive/_HOST@REALM"

这让我困惑的部分是上面的校长。为什么要使用“主要=蜂巢/ _HOST @ REALM”(从我读过的是蜂巢服务主体),当我与使用中的kinit前一个命令我的用户帐户验证?

我将运行针对蜂巢服务主体或我的用户帐户的查询?是不是所有的用户在使用时,径直使用Hive服务主体?没有任何理由的背后呢?

链接进行进一步的上下文:Connecting to Hive via Beeline using Kerberos keytab

hadoop hive kerberos amazon-emr beeline
1个回答
0
投票

对JDBC URL的principal=选项实际上指的是服务主体(SPN),即你需要连接到什么。这是无可否认的暧昧和混乱。

kinit验证用户主体(UPN),开创了“票证授予票证”(TGT),这是在票证缓存倾倒。 后来JDBC客户端(或HTTP客户端,或蜂巢Metastore Java客户端,或HDFS Java客户端,其他)将使用TGT来请求服务票证适当的主机上相应的服务类型;出于某种原因的Java从来没有把在高速缓存中(不像curl或Python,它使用C库,像kinit),其服务票证。

的SPN是在名为***-site.xml Hadoop配置文件,这是由Hadoop的客户端库消耗通常定义。 但是...... JDBC驱动程序应该是独立的,不会对外部库或配置文件的依赖性,并获得来自URL所有连接PARAMS。这就是为什么你必须明确的东西上SPN您的网址。咄。

© www.soinside.com 2019 - 2024. All rights reserved.