GBASE 8A v953报错集锦57--启用 Kerberos 认证后,加载导出报错

问题现象
华为定制 Hadoop,启用了 Kerberos 认证,配置 gbase_hdfs_protocol=RPC,从两
个不同的 coor 节点执行加载任务,报错 分别为“Kerberos context has not been
initialized”和“AccessControlException: Failed to evaluate challenge:
GSSAPI error in client while negotiating security context ...”。
解决方法:
问题排查方法如下:
1)针对 Kerberos context has not been initialized 错误,首先怀疑该节点
Kerberos 系统库版本过低(< 1.10),检查系统版本主为 centos 7.3,kerberos
库版本为 1.15,怀疑不成立。
2) 再 次 检 查 express.log 文件,发现 /usr/lib64/libkrb5.so3.3: symbol
k5_dir_filenames,
version krb5support_0_MIT not defined in
libkrb5support.so.0”等信息,这可能是因为.so 文件版本冲突引起,但检查系统
目录/usr/lib64 下的 libkrb5*.so 文件都来自相同的安装包,没有发现问题。
3) 检 查
gclusterd
gbased
加 载 的 动 态 库 , 发 现 引 用 了
/home/gbase/hadoopclient/kerberos/lib 下 的 非 系 统 自 带 库 文 件 , 怀 疑
LD_LIBRARY_PATH 中 指 向 了 其 它 路 径 , 打 印 LD_LIBRARY_PATH 变 量 , 发 现
/home/gbase/hadoopclient/kerberos/lib 被加入了 LD_LIBRARY_PATH 中。
4) 检查.bashrc 和.bash_profile,发现执行了一个 hadoop 客户端初始化环境脚
本,导致 LD_LIBRARY_PATH 变量被更改。该 hadoop 客户端脚本用于在 gbase 账号
下执行 hdfs 客户端命令,但不是 8a 连接 hadoop 加载和导出所需要的,建议现场
从 bash_profile 中删除该脚本。
5) 清理 LD_LIBRARY_PATH 变量后,再次执行加载任务,不再报 1)错误,express.log
日志中也不再出现 2)错误,并出现了 Init creds ... OK”,表示初始化 Kerberos
票据成功。
6)针对 AccessControlException: Failed to evaluate challenge: GSSAPI error
in client while negotiating security context ...”错误,怀疑现场 Hadoop
可能启用了 HTTPS 传输协议,经检查确认已启用 HTTPS 协议,建议配置参数
_gbase_hdfs_rpcconfig="dfs.encrypt.data.transfer=true,dfs.block.access.
token.enable=true"。现场反馈配置后仍报相同错误,后确认只在 gcluster 上配
置了该参数,未在 gnode 上配置。
7) 完成以上两个错误的处理后,重启 8a 集群。执行加载任务,报错信息变为
“cannot read file ... Caused by: HdfsIOException: InputStreamImpl: all
nodes been tried and no valid replica can be read for Block ...”
8) 检 查
hadoopclient
目 录 下 的 配 置 文 件
hdfs-site.xml 发 现
“dfs.encrypt.data.transfer=false
,因此重新配置参数
_gbase_hdfs_rpcconfig="dfs.encrypt.data.transfer=false,dfs.block.access
.token.enable=true"。
9) 再次执行加载任务,加载成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值