这里有一个问题从java连接到Hive,但我的不同
我的hive在machine1上运行,我需要使用在machine2上运行的Java服务器传递一些查询.据我所知,Hive有一个JDBC接口,用于接收远程查询.我从这里获取代码 - HiveServer2客户端
我安装了文章中写的依赖项: -
但是我在编译时遇到java.lang.NoClassDefFoundError错误 完全错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:393)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:187)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:163)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.bidstalk.tools.RawLogsQuerySystem.HiveJdbcClient.main(HiveJdbcClient.java:25)
Run Code Online (Sandbox Code Playgroud)
StackOverflow的另一个问题是建议在Maven中添加Hadoop API依赖项 - Hive Error
我不明白为什么我需要hadoop API让客户端与Hive连接.JDBC驱动程序不应该与底层查询系统无关吗?我只需要传递一些SQL查询?
编辑: 我正在使用Cloudera(5.3.1),我想我需要添加CDH依赖项.Cloudera实例正在运行hadoop 2.5.0和HiveServer2
但是服务器在机器1上.在机器上,代码至少应该编译,我应该只在运行时遇到问题!
小智 8
如果你还没有解决这个问题,我已经试了一下.我需要以下依赖项来编译和运行它:
libthrift-0.9.0-cdh5-2.jar
httpclient-4.2.5.jar
httpcore-4.2.5.jar
commons-logging-1.1.3.jar
hive-common.jar
slf4j-api-1.7.5.jar
hive-metastore.jar
hive-service.jar
hadoop-common.jar
hive-jdbc.jar
guava-11.0.2.jar
Run Code Online (Sandbox Code Playgroud)
hive文档可能是针对旧版本/发行版编写的.
你的例外是由于丢失的hadoop-commonjar,它有org.apache.hadoop.conf.Configuration.
希望这可以帮助.
尝试使用hive-jdbc 1.2.1对hive 0.13时出现相同的错误.与其他答案中的长列表相比.现在我们使用这两个:
hive-jdbc-1.2.1-standalone.jar
hadoop-common-2.7.1.jar
Run Code Online (Sandbox Code Playgroud)
另一个注意事项:你可能会得到' 必填字段'client_protocol'未设置!'当使用最新的jdbc对抗较旧的Hive时.如果是这样,请将jdbc版本更改为1.1.0:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.1.0</version>
<classifier>standalone</classifier>
</dependency>
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题!
经过一些尝试和尝试,我在我的 pom 文件中添加了以下依赖项,从那时起我就能够在 CHD 5.3.1 和 5.2.1 集群上运行代码。
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.13.1-cdh5.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libfb303</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>2.5.0-mr1-cdh5.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.5.0-cdh5.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.13.1-cdh5.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.5.0-cdh5.3.1</version>
</dependency>
<dependency>
Run Code Online (Sandbox Code Playgroud)
请注意,其中一些依赖项可能不是必需的
| 归档时间: |
|
| 查看次数: |
35660 次 |
| 最近记录: |