"Ungültiger name der Methode: 'ausführen'" Fehler mit Hive-Client in Java

Ich bin mit CDH-4.2.1-1.cdh4.2.1.p0.5 in einer cluster-set-up mit Cloudera Manager und ich werde versuchen, den Bienenstock Beispiel die Arbeit mit dem Hive-API in Java.
Die hive version, die ich verwende, ist 0.10 (hive-hwi-0.10.0-cdh4.2.1.jar) und ich bin versucht, setup-ein einfaches Beispiel gemäß den Anweisungen in dieser url: https://cwiki.apache.org/confluence/display/Hive/HiveClient

Beim ausführen meines Codes (die source-code am Ende des Beitrags), ich erhalte die folgende Fehlermeldung:

Exception in thread "main" java.sql.SQLException: org.apache.thrift.TApplicationException: Invalid method name: 'execute'
    at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:191)
    at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127)
    at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:126)
    at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:121)
    at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)

Ich habe die Suche in Google für eine Weile jetzt, und ich finde keine Lösung für dieses problem.
Wer kann mir einen Tipp geben könnte was das Problem verursacht?

Vielen Dank im Voraus,

Robbbie

Code der den Fehler verursacht:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.log4j.Logger;

public class HiveJob {

private static Logger mLogger = Logger.getLogger(HiveJob.class);
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

public static void main(String[] args) throws SQLException {
    HiveJob myJob = new HiveJob();
    myJob.execute();
}

public void execute() throws SQLException {
    mLogger.info("Start HiveJob");
    try {
        Class.forName(driverName);
    } catch (ClassNotFoundException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
        System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive://myHiveServer:9083/default", "", "");
    Statement stmt = con.createStatement();
    String sql = "SHOW TABLES";
    System.out.println("Running: " + sql);
    ResultSet res = stmt.executeQuery(sql);
    while (res.next()) {
        System.out.println(res.getString(1));
    }
    mLogger.info("HiveJob executed!");
}

}

InformationsquelleAutor robbbie | 2013-06-10
Schreibe einen Kommentar