导出数据到Kerberos 认证HDFS,数据可以正
常导出,但会有报错信息
问题现象
通过Kerberos 认证不落地导出数据到HDFS,数据可以正常导出,但会有报错信
息,信息如下:
gbase> show warnings \G;
*************************** 1. row ***************************
Level: Error
Code: 1708
Message: [133.96.79.145:5050](GBA-02AD-0005)Failed to query in gnode:
GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
133
DETAIL: Can't open file: 'Export operation failed with error - I/O operation
on hdp://ldapuser@133.96.79.207:50070/user/bdoc/4/services/hdfs/58/datasync/o
m_test_outfile_20171129/om_test_outfile_20171129_16 failed with error - ' (e
rrno: 2)
SQL: SELECT /*133.96.79.143_16565_5_2017-11-29_10:34:23*/ /*+ TID('599
815447') */ `om.test_171124`.`name` AS `name`, `om.test_171124`.`age` AS `
age` INTO OUTFILE 'hdp://133.96.79.207:50070/user/bdoc/4/services/hdfs/58/d
atasync/om_test_outfile_20171129?user=ldapuser&groupnum=15&filenum=&cre
atedir=1'
outfilemode by hdfs
writemode by overwrites
FIELDS
TERMI
NATED BY '|'
ENCLOSED BY ''
LINES
STARTING BY ''
TERMINA
TED BY '\n'
FROM `om`.`test_171124_n16` `om.test_171124`
1 row in set (Elapsed: 00:00:00.00)
ERROR:
No query specified
已经确定hdfs 中已经有导出的数据,但是集群依然报错。
原因分析
通过对日志分析及模拟测试,确定问题的原因为:
Hadoop 集群在接收到并发的token 请求后,有可能报错(不通过8a 导出功能,
脚本就能复现)。
通过筛查现场Hadoop 日志,
发现共有两种报错的堆栈,
都是由jdk 层jgss 模块引
发,目前暂未找到从部署上规避此问题的方法。
两种报错:
GSSException: No valid credentials provided (Mechanism level: Failed to fi
nd any kerberos credentails).
GSSException:Failure unspecified at GSS-API level (Mechanism level: Req
uest a replay (34)).
其中报错2 已明确是因为jdk 层jgss 模块为防止replay 攻击的实现机制导致,而
报错2 的具体原因目前还不清楚,推测与使用相同Kerberos 凭据向Hadoop 进行
高并发认证相关。
解决方法
两种报错的解决方案如下,解决方案可以二选一:
GSSException: No valid credentials provided (Mechanism level: Failed to find
any kerberos credentails).
1.
修改用户应用程序,在加载和导出SQL 中使用Hadoop 的Namenode 主
机名代替IP 地址;
2.
升级部署的Hadoop 版本到2.8.0 版本。
GSSException:Failure unspecified at GSS-API level (Mechanism level: Request
a replay (34))
GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
134
1)升级Hadoop 集群java 环境到1.8.0 版本;
2)修改GBase 8a MPP Cluster 连接Hadoop 的实现,支持单点登录和token
维护。