2017-01-18 2 views
1

Я попытался использовать JDBC-драйвер Apache Drill программно.Как подключить Hbase с JDBC-драйвером Apache Drill программно

Вот код:

import java.sql.DriverManager 

object SearchHbaseWithHbase { 
    def main(args: Array[String]): Unit = { 
    Class.forName("org.apache.drill.jdbc.Driver") 
    val zkIp = "192.168.3.2:2181" 
    val connection = DriverManager.getConnection(s"jdbc:drill:zk=${zkIp};schema:hbase") 
    connection.setSchema("hbase") 

    println(connection.getSchema) 
    val st = connection.createStatement() 
    val rs = st.executeQuery("SELECT * FROM Label") 
    while (rs.next()){ 
     println(rs.getString(1)) 
    } 
    } 
} 

Я установил схему базы данных с типом: HBase, как:

connection.setSchema("hbase") 

Но он терпит неудачу с кодом ошибки:


Exception in thread "main" java.sql.SQLException: VALIDATION ERROR: From line 1, column 15 to line 1, column 19: Table 'Label' not found SQL Query null


Таблица ярлыков точно выходит в мою базу. я могу найти мои данные, когда я использую SQLINE как:

sqline -u jdbc:drill:zk.... 
use hbase; 
input :select * from Label; 

ответ

1

Я решил эту проблему. Я запутал схему сверла и схему драйвера jdbc ...... правильные коды должны быть такими:

object SearchHbaseWithHbase{ 
    def main(args: Array[String]): Unit = { 
    Class.forName("org.apache.drill.jdbc.Driver") 
    val zkIp = "192.168.3.2:2181" 
    val p = new java.util.Properties 
    p.setProperty("schema","hbase") 

// val connectionInfo = new ConnectionInfo 
    val url = s"jdbc:drill:zk=${zkIp}" 
    val connection = DriverManager.getConnection(url, p) 
// connection.setSchema("hbase") 
// println(connection.getSchema) 
    val st = connection.createStatement() 
    val rs = st.executeQuery("SELECT * FROM Label") 
    while (rs.next()){ 
     println(rs.getString(1)) 
    } 
    } 
} 
Смежные вопросы