如何以编程方式将 Hbase 与 Apache Drill 的 JDBC 驱动程序连接
How to connect Hbase With JDBC driver of Apache Drill programmatically
我尝试以编程方式使用 Apache Drill 的 JDBC 驱动程序。
代码如下:
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
标签table正好在我的hbase中退出。
当我像这样使用 sqline 时,我可以找到我的数据:
sqline -u jdbc:drill:zk....
use hbase;
input :select * from Label;
我已经解决了这个问题。我混淆了 drill 的模式和 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))
}
}
}
我尝试以编程方式使用 Apache Drill 的 JDBC 驱动程序。
代码如下:
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
标签table正好在我的hbase中退出。 当我像这样使用 sqline 时,我可以找到我的数据:
sqline -u jdbc:drill:zk....
use hbase;
input :select * from Label;
我已经解决了这个问题。我混淆了 drill 的模式和 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))
}
}
}