我正在尝试将我的HiveJDBC客户端连接到hiveserver2。我用的是跟随maven
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-service</artifactId>
<version>1.2.1000.2.4.2.12-1</version>
</dependency>
hiveserver2.start() started my hiveserver2.
但当我用以下代码启动jdbc客户机时:
val con: Connection = DriverManager
.getConnection("jdbc:hive2://localhost:10000/default", "", "")
val stmt: Statement = con.createStatement
stmt.execute("create table if not exists student (id int))
它给了我以下例外:
org.apache.hive.service.cli.hivesqlexception:java.lang.noclassdeffounderror:org/apache/hadoop/ipc/callercontext$builder位于org.apache.hive.jdbc.utils.verifysuccess(utils)。java:256)在org.apache.hive.jdbc.utils.verifysuccesswithinfo(utils。java:242)在org.apache.hive.jdbc.hivestatement.execute(hivestatement。java:254)
有谁能帮我找出原因或解决办法吗。
提前谢谢。
1条答案
按热度按时间7nbnzgx91#
这可能是由于多个reason:-
相应的jar将不可用,即具有正确版本的hivejdbcdriver jar,例如:“hive-jdbc-1.2.1.jar”,或者有时您可能需要在libraries文件夹或.m2存储库中使用“hive-jdbc-1.2.1-standalone.jar”(取决于您的用例如何)。
或者,也可能是jar没有添加到类路径中(在.classpath文件中为这个jar添加一个条目),这取决于应用程序的构建方式。