关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 猪头192 2024-03-27 23:17
采纳率: 0%
浏览 1 首页/
大数据
/ java.sql.SQLExceptio 大数据 Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).]. - 具体错误信息为:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:10000/datax: Required field 'serverProtocolVersion' is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:ERROR_STATUS, infoMessages:[*org.apache.hive.service.cli.HiveSQLException:Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate root:14:13, org.apache.hive.service.cli.session.SessionManager:createSession:SessionManager.java:419, org.apache.hive.service.cli.session.SessionManager:openSession:SessionManager.java:362, org.apache.hive.service.cli.CLIService:openSessionWithImpersonation:CLIService.java:193, org.apache.hive.service.cli.thrift.ThriftCLIService:getSessionHandle:ThriftCLIService.java:440, org.apache.hive.service.cli.thrift.ThriftCLIService:OpenSession:ThriftCLIService.java:322, org.apache.hive.service.rpc.thrift.TCLIService$Processor$OpenSession:getResult:TCLIService.java:1377, org.apache.hive.service.rpc.thrift.TCLIService$Processor$OpenSession:getResult:TCLIService.java:1362, org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39, org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39, org.apache.hive.service.auth.TSetIpAddressProcessor:process:TSetIpAddressProcessor.java:56, org.apache.thrift.server.TThreadPoolServer$WorkerProcess:run:TThreadPoolServer.java:286, java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1149, java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:624, java.lang.Thread:run:Thread.java:750, *java.lang.RuntimeException:java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate root:22:8, org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:89, org.apache.hive.service.cli.session.HiveSessionProxy:access$000:HiveSessionProxy.java:36, org.apache.hive.service.cli.session.HiveSessionProxy$1:run:HiveSessionProxy.java:63, java.security.AccessController:doPrivileged:AccessController.java:-2, javax.security.auth.Subject:doAs:Subject.java:422, org.apache.hadoop.security.UserGroupInformation:doAs:UserGroupInformation.java:1729, org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:59, com.sun.proxy.$Proxy40:open::-1, org.apache.hive.service.cli.session.SessionManager:createSession:SessionManager.java:410, *java.lang.RuntimeException:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate root:28:6, org.apache.hadoop.hive.ql.session.SessionState:start:SessionState.java:610, org.apache.hadoop.hive.ql.session.SessionState:start:SessionState.java:548, org.apache.hive.service.cli.session.HiveSessionImpl:open:HiveSessionImpl.java:164, sun.reflect.GeneratedMethodAccessor5:invoke::-1, sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43, java.lang.reflect.Method:invoke:Method.java:498, org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:78, *org.apache.hadoop.ipc.RemoteException:User: hadoop is not allowed to impersonate root:52:24, org.apache.hadoop.ipc.Client:getRpcResponse:Client.java:1545, org.apache.hadoop.ipc.Client:call:Client.java:1491, org.apache.hadoop.ipc.Client:call:Client.java:1388, org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker:invoke:ProtobufRpcEngine.java:233, org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker:invoke:ProtobufRpcEngine.java:118, com.sun.proxy.$Proxy29:getFileInfo::-1, org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB:getFileInfo:ClientNamenodeProtocolTranslatorPB.java:904, sun.reflect.GeneratedMethodAccessor2:invoke::-1, sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43, java.lang.reflect.Method:invoke:Method.java:498, org.apache.hadoop.io.retry.RetryInvocationHandler:invokeMethod:RetryInvocationHandler.java:422, org.apache.hadoop.io.retry.RetryInvocationHandler$Call:invokeMethod:RetryInvocationHandler.java:165, org.apache.hadoop.io.retry.RetryInvocationHandler$Call:invoke:RetryInvocationHandler.java:157, org.apache.hadoop.io.retry.RetryInvocationHandler$Call:invokeOnce:RetryInvocationHandler.java:95, org.apache.hadoop.io.retry.RetryInvocationHandler:invoke:RetryInvocationHandler.java:359, com.sun.proxy.$Proxy30:getFileInfo::-1, org.apache.hadoop.hdfs.DFSClient:getFileInfo:DFSClient.java:1661, org.apache.hadoop.hdfs.DistributedFileSystem$29:doCall:DistributedFileSystem.java:1577, org.apache.hadoop.hdfs.DistributedFileSystem$29:doCall:DistributedFileSystem.java:1574, org.apache.hadoop.fs.FileSystemLinkResolver:resolve:FileSystemLinkResolver.java:81, org.apache.hadoop.hdfs.DistributedFileSystem:getFileStatus:DistributedFileSystem.java:1589, org.apache.hadoop.fs.FileSystem:exists:FileSystem.java:1683, org.apache.hadoop.hive.ql.session.SessionState:createRootHDFSDir:SessionState.java:708, org.apache.hadoop.hive.ql.session.SessionState:createSessionDirs:SessionState.java:654, org.apache.hadoop.hive.ql.session.SessionState:start:SessionState.java:586], errorCode:0, errorMessage:Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate root), serverProtocolVersion:null)
展开全部
收起
写回答
好问题
0 提建议
追加酬金
关注问题
微信扫一扫 点击复制链接 分享 邀请回答
编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0
(可追加 ¥500)
¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付
二维码出错
点击刷新
支付金额
15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意
《付费问题酬金结算规则》 结题 再想想 删除 再等等
3条回答 默认 最新
关注
关注
引自免费微信小程序:皆我百晓生
您好,根据您提供的错误信息,问题似乎是连接数据库时出现了 required 字段 'serverProtocolVersion' 为空的问题。
以下是可能的原因和建议:
- 请确保您的数据库服务器已经启动并且正在运行。
- 检查您的数据库服务器是否需要特定的 serverProtocolVersion 参数,如果不是的话,可以删除这个参数。
- 如果您不确定服务器需要什么参数,您可以联系您的数据库管理员或者 DBA 来获取帮助。
如果您需要进一步的帮助,可以提供更多细节,我将尽力为您提供帮助。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
解决
无用
评论
打赏
微信扫一扫 点击复制链接
分享 举报
-
此错误消息表明尝试连接到Hive数据库时出现了问题。错误的核心在于用户hadoop不被允许模拟用户root。在Hadoop和Hive的安全环境中,模拟(impersonation)是一种机制,允许一个用户(通常是服务账户)以另一个用户的身份执行操作。
错误消息的关键部分是:
...java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate root...
要解决这个问题,请按照以下步骤操作:
检查Hive配置:
- 确保Hive配置允许
hadoop用户模拟其他用户。这通常通过Hive的hive-site.xml配置文件中的hive.server2.enable.doAs参数来设置。如果设置为true,则Hive服务允许模拟。 - 检查
hive.server2.proxy.user属性是否配置正确,该属性用于定义哪些用户可以代理其他用户。
Hadoop安全设置:
- 如果Hadoop集群启用了Kerberos认证或其他安全机制,确保
hadoop用户有适当的权限来模拟root用户。 - 查看Hadoop的
core-site.xml配置,确认安全设置是否允许模拟。
用户权限:
- 在Hadoop中,通常不建议使用
root用户来运行应用程序或服务,因为它带来了安全风险。如果可能,请考虑使用具有适当权限的非root用户。 - 确保
hadoop用户有足够的权限来访问Hive数据库和执行所需的操作。
与DBA或管理员沟通:
- 如果你不确定如何配置Hive或Hadoop的安全设置,请与你的数据库管理员(DBA)或系统管理员沟通。他们可以帮助你检查配置和权限设置。
检查网络连接:
- 虽然错误消息主要与权限和模拟有关,但也要确保你的应用程序可以连接到Hive服务器。检查网络连接,确保没有防火墙或其他网络问题阻止连接。
更新和修复:
- 确保你的Hive和Hadoop集群都是最新的,并且没有已知的与模拟相关的bug。如果有必要,考虑升级你的集群或应用补丁。
查看日志:
- 仔细查看Hive服务器和Hadoop集群的日志,可能会提供更多关于问题的详细信息。
测试连接:
- 使用命令行工具(如
beeline)尝试以hadoop用户身份连接到Hive,以确认问题是否与你的应用程序代码有关。
处理此类问题时,请确保你了解你正在使用的Hadoop和Hive版本的安全特性和要求,并遵循最佳实践来配置和管理你的集群。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
解决
无用
评论
打赏
微信扫一扫 点击复制链接
分享 举报