CLIENT_0004:Unable to find valid Kerberos ticket cache (kinit)
背景
今天在使用JavaAPI来连接sqoop1.99.7的时候,遇到了个错误。
错误信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 0 [main] WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native -hadoop library for your platform… using builtin-java classes where applicable Exception in thread "main" org.apache.sqoop.common.SqoopException: CLIENT_0004:Unable to find valid Kerberos ticket cache (kinit) at org.apache.sqoop.client.request.ResourceRequest.doHttpRequest(ResourceRequest.java: 159 ) at org.apache.sqoop.client.request.ResourceRequest.doHttpRequest(ResourceRequest.java: 69 ) at org.apache.sqoop.client.request.ResourceRequest.get(ResourceRequest.java: 179 ) at org.apache.sqoop.client.request.JobResourceRequest.read(JobResourceRequest.java: 65 ) at org.apache.sqoop.client.request.SqoopResourceRequests.readJob(SqoopResourceRequests.java: 146 ) at org.apache.sqoop.client.SqoopClient.getJobs(SqoopClient.java: 403 ) at com.fz.hadoop.sqoop.SqoopTest.main(SqoopTest.java: 18 ) Caused by: org.apache.hadoop.security.authentication.client.AuthenticationException: Authentication failed, status: 404 , message: Not Found at org.apache.hadoop.security.authentication.client.AuthenticatedURL.extractToken(AuthenticatedURL.java: 275 ) at org.apache.hadoop.security.authentication.client.PseudoAuthenticator.authenticate(PseudoAuthenticator.java: 77 ) at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator.authenticate(DelegationTokenAuthenticator.java: 131 ) at org.apache.hadoop.security.authentication.client.KerberosAuthenticator.authenticate(KerberosAuthenticator.java: 214 ) at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator.authenticate(DelegationTokenAuthenticator.java: 131 ) at org.apache.hadoop.security.authentication.client.AuthenticatedURL.openConnection(AuthenticatedURL.java: 215 ) at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL.openConnection(DelegationTokenAuthenticatedURL.java: 322 ) at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL.openConnection(DelegationTokenAuthenticatedURL.java: 245 ) at org.apache.sqoop.client.request.ResourceRequest.doHttpRequest(ResourceRequest.java: 79 ) … 6 more |
问题分析:
从报错信息上看貌似是Authentication认证的一些错误
- 网上找了查了很多都没发现解决方案。
- 从官网security Authentication章节也没看到好的解决方案,想要配置Kerberos相关的Authentication,一看太麻烦感觉也不太靠谱
http://sqoop.apache.org/docs/1.99.7/security/AuthenticationAndAuthorization.html
解决方案
无意中在http://blog.csdn.net/jiacai2050/article/details/59117645这篇文章中发现了希望
所以,我试着在url后面加上/,果然好使了。
我的代码如下:
没加/之前
url加上/后
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现