• java.sql.SQLExceptio


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 猪头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条回答 默认 最新

    • 码农阿豪 Java领域优质创作者 2024-03-27 23:18
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      问题描述: 出现了一个数据库工具错误代码 [DBUtilErrorCode-10],并且提供了一个详细的描述和错误信息,但不能连接到数据库。需要检查账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助。错误信息给出了具体的异常信息,标明了可能是网络环境问题。 解答: 从问题描述上可以看出,该错误可能由以下几种情况导致:
      1. 账号、密码、数据库名称、IP、Port填写错误,需要重新检查并修改;
      2. 数据库服务未启动或者网络环境较差,导致连接失败,需要确保数据库服务正常启动,并检查网络环境;
      3. 用户权限受限,无法连接到数据库,需要联系 DBA 并申请权限;
      4. 其他未知原因导致的连接失败,需要对错误信息进行详细分析。 针对这些可能的原因,我们可以采取以下措施进行排错:
      5. 确认账号、密码、数据库名称、IP、Port填写正确,可尝试手动连接数据库验证,如:
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/yourDB?user=username&password=password");
      
      1. 确认数据库服务已启动,并检查网络环境是否正常。
      2. 如确认用户权限受限,需要联系 DBA 并申请权限。
      3. 如无法确定具体原因,可以尝试查阅相关文献或者寻求技术支持。 注:针对这种类型的错误,通常情况下会同时提供详细的错误信息,需要仔细分析并进行处理。
      评论
    • 专家-皆知 2024-03-27 23:52
      关注

      引自免费微信小程序:皆我百晓生

      您好,根据您提供的错误信息,问题似乎是连接数据库时出现了 required 字段 'serverProtocolVersion' 为空的问题。

      以下是可能的原因和建议:

      1. 请确保您的数据库服务器已经启动并且正在运行。
      2. 检查您的数据库服务器是否需要特定的 serverProtocolVersion 参数,如果不是的话,可以删除这个参数。
      3. 如果您不确定服务器需要什么参数,您可以联系您的数据库管理员或者 DBA 来获取帮助。

      如果您需要进一步的帮助,可以提供更多细节,我将尽力为您提供帮助。

      评论
    • shandongwill 大数据领域新星创作者 2024-03-28 08:39
      关注

      此错误消息表明尝试连接到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...
      

      要解决这个问题,请按照以下步骤操作:

      1. 检查Hive配置

        • 确保Hive配置允许hadoop用户模拟其他用户。这通常通过Hive的hive-site.xml配置文件中的hive.server2.enable.doAs参数来设置。如果设置为true,则Hive服务允许模拟。
        • 检查hive.server2.proxy.user属性是否配置正确,该属性用于定义哪些用户可以代理其他用户。
      2. Hadoop安全设置

        • 如果Hadoop集群启用了Kerberos认证或其他安全机制,确保hadoop用户有适当的权限来模拟root用户。
        • 查看Hadoop的core-site.xml配置,确认安全设置是否允许模拟。
      3. 用户权限

        • 在Hadoop中,通常不建议使用root用户来运行应用程序或服务,因为它带来了安全风险。如果可能,请考虑使用具有适当权限的非root用户。
        • 确保hadoop用户有足够的权限来访问Hive数据库和执行所需的操作。
      4. 与DBA或管理员沟通

        • 如果你不确定如何配置Hive或Hadoop的安全设置,请与你的数据库管理员(DBA)或系统管理员沟通。他们可以帮助你检查配置和权限设置。
      5. 检查网络连接

        • 虽然错误消息主要与权限和模拟有关,但也要确保你的应用程序可以连接到Hive服务器。检查网络连接,确保没有防火墙或其他网络问题阻止连接。
      6. 更新和修复

        • 确保你的Hive和Hadoop集群都是最新的,并且没有已知的与模拟相关的bug。如果有必要,考虑升级你的集群或应用补丁。
      7. 查看日志

        • 仔细查看Hive服务器和Hadoop集群的日志,可能会提供更多关于问题的详细信息。
      8. 测试连接

        • 使用命令行工具(如beeline)尝试以hadoop用户身份连接到Hive,以确认问题是否与你的应用程序代码有关。

      处理此类问题时,请确保你了解你正在使用的Hadoop和Hive版本的安全特性和要求,并遵循最佳实践来配置和管理你的集群。

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    什么是NetApp的DQP和如何安装DQP?
    CRS 管理与维护
    记录LSTM公式、梯度消失现象/解决
    研发主管接私活被辞退,法院判决公司赔偿20.7万元
    Android 缩短开机动画的播放时长
    【Linux】10 -- Linux下的shell编程(二)
    MySQL的多表关联查询
    基于JAVA乐购游戏商城系统计算机毕业设计源码+数据库+lw文档+系统+部署
    借款人突然去世,欠款怎么办?
    基于DBC Signal Group生成Autosar SR接口(1)
  • 原文地址:https://ask.csdn.net/questions/8080112