Orada burada bir soru connect from java to Hive ama benimki makine1 çalışan farklıBağlan Kovanı thorugh Java JDBC
Benim kovanı ve ben machine2 çalışan Java sunucusunu kullanarak bazı sorgular geçmeleri gerekiyor. Anladığım kadarıyla Hive, uzak sorguları almak amacıyla bir JDBC arayüzüne sahip. Ben buradan kod aldı -
HiveServer2 Clients ben maddede yazılı bağımlılıkları yüklü: -
- kovan-jdbc * .jar
- kovan hizmet * .jar
- libfb303-0.9. 0.jar
- libthrift-0.9.0.jar
- log4j-1.2.16.jar
- slf4j-api-1.6.1.jar
- slf4j-log4j12-1.6.1.jar
- Commons-günlük-1.0.4.jar
Ancak derleme zamanında Tam Hata java.lang.NoClassDefFoundError hata var:
Hive Error -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)
StackOverflow başka soru Maven içinde Hadoop API bağımlılıkları eklemek için tavsiye
Bir müşterinin Hive ile bağlantı kurması için neden bir API API'sine ihtiyaç duyduğumu anlamıyorum. JDBC sürücüsü, temel sorgu sisteminin agnostik olmamalıdır? Sadece bazı SQL sorgularını geçmem gerekiyor mu?
Düzenleme: Cloudera (5.3.1) kullanıyorum , ben CDH bağımlılıkları eklemek gerek. Cloudera örneği, hadoop 2.5.0 ve HiveServer2
'u çalıştırıyor, ancak sunucular makinede 1 çalışıyor. Makine üzerinde kod en azından derlenmeli ve yalnızca çalışma zamanında sorunlara sahip olmalıyım!
Hadoop ve kovanın sürümü nedir? –