内容纲要
概要描述
kafka常见问题
详细说明
1 上游kafka流的流任务运行正常,但下游没数据查看slipstream server日志
排查步骤
“Could not login: the client is being asked for a password…” 这个报错信息并不是很具体,可能会有很多原因导致这个报错。
step1: 检查kafka安全流的tblproperties配置内容
检查安全相关属性是否都已添加,(这一步可以参照手册进行,着重看properties名称是否都存在)
-- TDH-client登陆beeline
show databases;
use ;
show create table .;
2.着重检查"sasl.jaas.config"这一项内容。整理经常遇到的错误示范如下
# required,userKeyTab=true,keyTab princpal之间都需要有空格&或者换行,连在一起会报错。
## ❌各个属性之间缺少空格,required后缺少空格
"com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=true storeKey=true keyTab=\"/etc/slipstream1/conf/kafka.keytab\" principal=\"kafka@TDH\""
## ❌principal内容不正确(下方示例中principal中包含一个空格)
"com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=true storeKey=true keyTab=\"/etc/slipstream1/conf/kafka.keytab\" principal=\" kafka@TDH\""
## ❌ kafka.keytab路径问题
### 1. 文件是否存在相应的目录
### 2. 是否每个executor所在的节点都存在
### 3. 查看下每个节点的kafka.keytab文件大小是否一致。
step2: 检查keytab
# 建议每个executor节点都看下
klist -ket /etc/slipstream1/conf/kafka.keytab
# 可能输出的结果如下
Keytab name: FILE:/etc/slipstream1/conf/kafka.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
0 2020-12-02T01:30:05 kafka@TDH (aes128-cts-hmac-sha1-96)
0 2020-12-02T01:30:05 kafka@TDH (aes256-cts-hmac-sha1-96)
0 2020-12-02T01:30:05 kafka@TDH (des3-cbc-sha1)
0 2020-12-02T01:30:05 kafka@TDH (des-cbc-md5)
0 2020-12-02T01:30:05 kafka@TDH (arcfour-hmac)
# ⚠️ 这里的Principal应当与kafka stream tblProperties中的 principal内容相同
# ⚠️ 每个executor节点的keytab结果应该是一样的!!!
# ⚠️ 每个executor节点上的keytab文件路径应该相同!!!
# ⚠️ 每个executor节点上的keytab文件,都应该可以在pod中访问到!!!
Tips1 slipsteram server日志
# 通过manager等页面找到slipstream-server所在节点
# 登入节点
# 进入日志目录
cd /var/log/slipstream1/
ls -all
# server 日志一般的名称为hive-server*.log
Tip2 进入slipstream executor pod
#查看 slipstream pod
kubectl get pods |grep slipstream
## 可能的输出
inceptor-executor1-slipstream1-7c845fcb48-7g5mw 1/1 Running 0 34h
inceptor-executor1-slipstream1-7c845fcb48-pjpdc 1/1 Running 0 34h
inceptor-executor1-slipstream1-7c845fcb48-qknct 1/1 Running 0 34h
inceptor-server-slipstream1-79fffdfd56-bmq8c 1/1 Running 0 34h
## 进入某一个executor pod
kubectl exec -it inceptor-executor1-slipstream1-7c845fcb48-7g5mw /bin/bash
## 退出pod回到宿主机
exit #回车
Tip3服务器间文件拷贝
# 例如把stream1节点上的keytab复制到stream2节点上
## 如果当前在stream1
scp /etc/slipstream1/conf/kafka.keytab root@stream2:/etc/slipstream1/conf #回车 -> 输入密码 ->回车
## 如果当前登陆在stream2上
scp root@stream1:/etc/slipstream/conf/kafka.keytab /etc/slipstream1/conf #回车 -> 输入密码 ->回车