经过两天多的资料查找,反复测试从网上找到的多种方案,加上阿里云售后的支持,终于搞定Go语言连接Apache Hive的问题。
测试环境,阿里云E-MapReduce 2.1 中的Hive, Golang 1.7,开发环境win10。
在阿里云hive-site.xml中需要添加:
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>
代码如下:
package main
import (
"fmt"
"github.com/derekgr/hivething" //基于hiveserver2 thrift
)
func main() {
db, err := hivething.Connect("${IP}:${port}", hivething.DefaultOptions)
if err != nil {
fmt.Errorf(err.Error())
}
defer db.Close()
results, err := db.Query("show tables") //select、dml、ddl都调用db.Query
if err != nil {
fmt.Println(err)
return
}
var tableName string
for results.Next() {
results.Scan(&tableName)
fmt.Println(tableName)
}
有疑问加站长微信联系(非本文作者)