当前位置: 首页 > news >正文

JDBC链接kerberos认证的impala数据库报错问题解决

先上代码

 public static  Connection connectToImpala() {try {log.info("ketTabPath:" + ketTabPath);log.info("krb5Path:" + krb5Path);System.setProperty("java.security.krb5.conf", krb5Path);System.setProperty("sun.security.krb5.debug", "true");Configuration conf = new Configuration();conf.set("hadoop.security.authentication", "kerberos");UserGroupInformation.setConfiguration(conf);log.info("设置Hadoop配置以使用Kerberos");// 使用已登录的用户来建立连接UserGroupInformation.loginUserFromKeytab("***@METRO.COM",ketTabPath);log.info("Kerberos用户验证成功");UserGroupInformation loginUser = UserGroupInformation.getLoginUser();log.info("loginUser:"+loginUser);Connection connection = loginUser.doAs(new PrivilegedExceptionAction<Connection>() {@Overridepublic Connection run() throws Exception {String jdbcUrl = "jdbc:impala://<ip>:<port>/<库名>;AuthMech=1;KrbRealm=METRO.COM;KrbHostFQDN=<host>;KrbServiceName=impala";Class.forName("com.cloudera.impala.jdbc41.Driver");log.info("准备建立连接");Connection connection = DriverManager.getConnection(jdbcUrl);log.info("连接成功:connection:" + connection.getSchema());return connection;}});return connection;} catch (IOException e) {throw new RuntimeException(e);} catch (InterruptedException e) {throw new RuntimeException(e);}}

遇到的问题:

1.hadoop报错

查看源码可知错误原因conf.set("hadoop.security.authentication", "Kerberos");Kerberos大写改为小写kerberos,这应该是依赖包的问题,当时同事大写是可以的 在我这边不行,我估计不同版本的包这个地方大小写不一样。

2.显示用户错误

kerberos认证成功了,但是去获取connection错误,原因是默认用系统用户进行登录了 所以后来我采用loginUser.doAs这种方式去获取连接,这样表示用已经登陆的用户去获取,这下就没问题啦

http://www.lryc.cn/news/389496.html

相关文章:

  • firewalld(2)安装、配置文件、规则查询
  • 施耐德全新EtherCAT运动控制器M310介绍
  • Springboot Mybatis 多数据源配置以及使用
  • Android启动时间分析
  • 智能洗车管理系统设计
  • vue3弹窗usehook
  • 上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)
  • imagesc函数 纵坐标翻转 colormap “set” “jet“
  • Postman接口测试工具的原理及应用详解(二)
  • IPython脚本加载秘籍:探索脚本魔法的艺术
  • 使用shell脚本进行clang-tidy静态代码分析
  • PHP和phpSpider:如何应对网站变动导致的数据爬取失败?
  • 聊聊etsy平台,一个年入百万的项目
  • SyntaxError: Unexpected token ‘??=‘
  • python如何输出list
  • 【面试系列】SQL 高频面试题
  • 【代码随想录训练营】【Day 66】【图论-3】| 卡码 101-104
  • 【面试系列】C#高频面试题
  • AI助力校园安全:EasyCVR视频智能技术在校园欺凌中的应用
  • Yolov8可视化界面使用说明,含代码
  • 怎么使用MarkDown画矩阵
  • Kafka入门-基础概念及参数
  • Clickhouse 常见操作
  • Docker使用daocloud镜像加速
  • flink的窗口
  • lodash.js 工具库
  • 使用ElementUI组件库
  • 【SkiaSharp绘图14】SKCanvas方法详解(三)URL注释、按顶点绘制、 是否裁切区域之外、旋转、缩放、倾斜、平移、保存/恢复画布
  • WebDriver API (2)
  • GCP FrontendConfig 详解:优化您的云负载均衡