在 kerberized 环境中启动和测试 HBase REST 服务

发布于 2021-04-06 20:06:13 字数 2730 浏览 1217 评论 0

先确认你的 HDP 集群启用了 kerberos 并安装了 hbase。

检查一下你的 hbase 服务的 keytab,我的 hbase 服务安装在 u1403 节点上,所以在 u1403 节点上执行:

$ klist -kt /etc/security/keytabs/hbase.service.keytab
Keytab name: FILE:/etc/security/keytabs/hbase.service.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 06/20/2017 14:45:57 hbase/u1403.ambari.apache.org@AMBARI.APACHE.ORG    (下略)

在 Ambari 中前往 Hbase -> Configs -> Advanced -> Custom Hbase-Site,增加或修改下列参数:

hbase.master.keytab.file=/etc/security/keytabs/hbase.service.keytab
hbase.master.kerberos.principal=hbase/_HOST@AMBARI.APACHE.ORG
hbase.rest.authentication.type=kerberos
hadoop.proxyuser.HTTP.groups=*
hadoop.proxyuser.HTTP.hosts=*
hbase.security.authorization=true
hbase.rest.authentication.kerberos.keytab=/etc/security/keytabs/spnego.service.keytab
hbase.rest.authentication.kerberos.principal=HTTP/_HOST@AMBARI.APACHE.ORG
hbase.security.authentication=kerberos
hbase.rest.kerberos.principal=hbase/_HOST@AMBARI.APACHE.ORG
hbase.rest.keytab.file=/etc/security/keytabs/hbase.service.keytab

还可以增加两个可选参数来定义 Rest 服务的端口:

hbase.rest.port = 17000
hbase.rest.info.port = 17050

在 Ambari 中前往 HDFS -> Configs -> Advanced -> Custom core-site,增加或修改下列参数:

hadoop.proxyuser.HTTP.groups=*
hadoop.proxyuser.HTTP.hosts=*

重启受影响的HBase和HDFS服务。
在安装HBase Master的节点(u1403)上执行:

$ su - hbase                        (切换为hbase用户)
$ kinit -kt hbase.service.keytab hbase/u1403.ambari.apache.org@AMBARI.APACHE.ORG
$ /usr/hdp/current/hbase-master/bin/hbase-daemon.sh start rest -p 17000 --infoport 17050       (启动REST服务器)

分别在无票据和有票据的情况下,测试REST服务器:

$ kdestroy
$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)

$ curl --negotiate -u : 'http://u1403.ambari.apache.org:17000/status/cluster'
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 401 Authentication required</title>

# kinit -kt /etc/security/keytabs/hbase.service.keytab hbase/u1403.ambari.apache.org@AMBARI.APACHE.ORG
# curl --negotiate -u : 'http://u1403.ambari.apache.org:17000/status/cluster'
3 live servers, 0 dead servers, 10.6667 average load

3 live servers
    hdp253k1.hdp:16020 1490688381983
        requests=0, regions=11
        heapSizeMB=120        maxHeapSizeMB=502

测试过程中层出现 hbase RegionServer 启动失败的情况,导致 curl 调用超时。从日志 hbase-hbase-master-u1403.log 上看,报告 Clock skew too great,推测是三个节点的时间不一致,导致kerberos票据失效。调整了三个节点的时间。重启所有HDP服务,curl 终于正确返回结果了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文