当前位置: 首页 > 知识库问答 >
问题:

从远程windows系统使用jdbc连接到kerberised配置单元

秋兴思
2023-03-14
Class.forName("org.apache.hive.jdbc.HiveDriver");
String url = "jdbc:hive2://<host>:10000/default;principal=hive/_HOST@<YOUR-REALM.COM>"
Connection con = DriverManager.getConnection(url);
Exception due to: Could not open client transport with JDBC Uri:
 jdbc:hive2://<host>:10000/;principal=hive/_HOST@YOUR-REALM.COM>: 
GSS initiate failed

我在这里做错了什么?查了很多论坛,都得不到妥善的解决方案。任何答复都将不胜感激。

谢谢

共有1个答案

陆卓
2023-03-14

如果您在Linux中运行代码,我将简单地指出这一点--即,您必须使用系统属性从具有特定格式的conf文件中定义Kerberos和JAAS配置
并且您必须切换调试跟踪标志以了解微妙的配置问题(即,不同风格/版本的JVM可能有不同的语法要求,这些要求没有文档化,这是一个反复试验的过程)。

但在Windows上还有其他问题:

  1. Apache配置单元JDBC驱动程序对Hadoop JAR有一些依赖,特别是在涉及Kerberos时(有关详细信息,请参阅该文章)
  2. 这些Hadoop JAR需要“本机库”--即Hadoop的Windows端口(您必须自己编译!!或者从Web上的不安全源下载!!)--加上系统属性Hadoop.home.dirjava.library.path分别指向Hadoop主目录及其bin子目录
 类似资料:
  • 我正在使用RJDBC 0.2-5连接到Rstudio中的Hive。我的服务器有hadoop-2.4.1和hive-0.14。我按照下面提到的步骤连接到Hive。 但我总是会遇到以下错误: 错误。jcall(drv@jdrv,“Ljava/sql/Connection;”,“连接”,如图所示。字符(url)[1],:java。lang.NoClassDefFoundError:无法初始化类组织。阿帕

  • 我已经使用JDBC api连接到HIVE2,这里提到,它是成功的,所以为了方便访问,我想到创建一个webapp,使用JSP作为前端页面来输入服务器名称和查询。虽然从JSP页面到servlet的所有参数都被正确解析,但它在连接到配置单元服务器时引发了一个错误,这是将libthrift和配置单元JAR放置在WEB-INF/lib目录中的必要条件,我同时放置在WEB-INF/lib和classpath中

  • 我在我的java应用程序中使用hive JDBC1.0来创建与hive服务器的连接并执行查询。我想从java代码中设置空闲配置单元连接超时。就像say一样,用户首先创建配置单元连接,如果配置单元连接在接下来的10分钟内保持空闲,那么该连接对象将过期。如果用户在10分钟后使用相同的连接对象执行查询,那么配置单元jdbc将抛出错误。你能告诉我通过java代码实现这一点的方法吗。 我知道配置单元中有一个

  • 我试图在Hive0.14中执行HiveACID事务属性,比如通过Java插入、删除和更新。我能够设置所需的ACID事务属性。还可以创建具有事务属性的表。但它失败了。下面是示例代码: 尝试插入时获得以下异常: 线程“main”java中出现异常。sql。SQLException:处理语句时出错:失败:执行错误,从组织返回代码1。阿帕奇。hadoop。蜂箱ql.exec。org的MapRedTask先

  • 我希望从VS2017调试一个Linux C++控制台应用程序,如以下教程所示: 使用Windows Subsystem For Linux在Visual Studio中编写和调试Linux C应用程序 从visual studio针对Linux的windows子系统 我已经在WSL Ubuntu 16.04安装中安装了gdbserver和openssh-server,正在运行,但是我无法从VS20