beeline连接inceptor方式汇总

  其他常见问题
内容纲要

概要描述


本文主要介绍如何通过 beeline 客户端的方式连接 inceptor。

详细说明


1. 无认证模式

命令格式:$ beeline -u jdbc:hive2://{hostname}:{port}/{database}
其中配置了 hosts 文件里面的 hostname 和 ip 的对应关系的情况下,可以直接使用 hostname 连接;
如下示例为连接 hostname 为 tdh-01(ip 为172.22.23.1) 的 inceptor 的 default 数据库

$ beeline -u jdbc:hive2://tdh-01:10000/default
$ beeline -u jdbc:hive2://172.22.23.1:10000/default

2. 开启LDAP认证模式

命令格式:$ beeline -u jdbc:hive2://{hostname}:{port}/{database} -n {user} -p {password}

如下示例为使用 lkw 用户、密码 123456,连接 hostname 为 tdh-01(ip 为172.22.23.1) 的 inceptor 的 default 数据库

$ beeline -u jdbc:hive2://172.22.23.1:10000/default -n lkw -p 123456

3. 只开启kerberos认证模式

  • 该模式下有三种方式可以登录
3.1 使用kinit登录用户
# kinit lkw
# 这里的principal指SPNs,固定写法,必须是hive/{inceptor-server-hostname}@{realm}的格式,和前面kinit的用户principal没关系
# beeline -u "jdbc:hive2://172.22.23.1:10000/default;principal=hive/node01@TDH"
3.2 使用连接串(keytab)指定连接的用户
# beeline -u 'jdbc:hive2://172.22.23.1:10000/default;principal=hive/node01@TDH;kuser=lkw@TDH;keytab=/root/lkw.keytab;auth=kerberos;krb5conf=/etc/krb5.conf'
3.3 使用连接串(password)指定连接的用户
# beeline -u 'jdbc:hive2://172.22.23.1:10000/default;principal=hive/node01@TDH;kuser=lkw@TDH;password=123456;auth=kerberos;krb5conf=/etc/krb5.conf'

参数说明:

  • principal=hive/node01@TDH, 同上面的说明,只是指定了Inceptor server的servcie principal name,不决定是哪个用户进行操作,所以说必须是hive/{inceptor-server-hostname}@{realm}的格式,而非用户的principal
  • 另外,在开启inceptorgateway情况下,由于不同节点上的服务的principal是不一致的,故而当前jdbc只支持如下写法 "jdbc:hive2://node01:6666/default;principal=hive/node01@TDH;||node02:6666/default;principal=hive/node02@TDH;"
  • kuser=lkw@TDH,这个参数才真正指定了要登录的用户,这里是lkw。lkw登录使用的密码可以使用keytab指定,或者使用password指定
  • keytab=/root/lkw.keytab 指定了使用/root/lkw.keytab的keytab登录lkw用户
  • password=123456;指定了使用密码123456登录lkw用户,参数3和4二选一
  • auth=kerberos;指定了使用kerberos认证方式连接inceptor,可选,如果beeline客户端可以读取core-site.xml中的hadoop.security.authentication时(需要进一步确认具体哪个参数),可以不指定
  • krb5conf=/etc/krb5.conf;指定kdc配置文件,可选,如果使用默认的/etc/krb5.conf配置,可以不指定

4. 同时开启Kerberos和LDAP认证模式

  • 使用LDAP方式登陆

5. 开启LDAP/KERBEROS认证的情况下的ACCESS TOKEN模式

  • 适用于5.2及更高版本
# beeline -u "jdbc:hive2://172.22.23.1:10000/default;guardianToken=9KmW9lK27Mcqfh7o34BD-TDH"

其中 guardianToken 需要从 guardian 页面获取:
使用对应用户的用户名和密码(比如这里使用lkw用户)登录 guardian-server ,然后点击用户下拉框的 Access Tokens ,进入Access Tokens 页面,点击添加 Access Tokens ;

file

在 Access Tokens 页面可以设置特定的属性,点击确定

file

生成该用户的Access Tokens ,然后使用该 Token 即可登录;

file

这篇文章对您有帮助吗?

平均评分 5 / 5. 次数: 1

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。