IT人生

  • 首页
  • 归档
  • kafka
  • Java
  • Spring
  • Golang
  • SQL
  • Spark
  • ElasticSearch
  • 关于

  • 搜索
Phoenix HBase Kudu ElasticSearch Spring 数据结构 操作系统 Kettle Azkaban Sqoop Hive Yarn Redis Mybatis Impala Cloudera 大数据 HDFS mycat shell Linux 架构 并发 mysql sql golang java 工具 spark kafka 人生

golang系列(六)通过golang 查询impala

发表于 2019-03-16 | 分类于 golang | 0 | 阅读次数 1953

cloudera官方没有提供impala基于golang的驱动,github有github.com/bippio/go-impala

package main

import (
   "context"
   "github.com/bippio/go-impala"
   "log"
   "time"
)

func main() {
   host := "prd-activity-3"
   port := 21000
   opts := impalathing.DefaultOptions

   // enable LDAP authentication:
   opts.UseLDAP = false
   opts.Username = "<username>"
   opts.Password = "<password>"

   // enable TLS
   opts.UseTLS = false
   opts.CACertPath = "<ca-cert-path>"

   con, err := impalathing.Connect(host, port, &opts)
   if err != nil {
      log.Fatal(err)
   }

   query, err := con.Query(context.Background(), "SELECT * from impalademo.test1")

   startTime := time.Now()
   results := query.FetchAll(context.Background())
   log.Printf("Fetch %d rows(s) in %.2fs", len(results), time.Duration(time.Since(startTime)).Seconds())
}

端口说明:

  1. 21000 :Impala Daemon Beeswax端口,被 impala-shell, Beeswax, Cloudera ODBC 1.2 驱动 用于传递命令和接收结果
  2. 21050:Impala Daemon HiveServer2端口,被使用 JDBC 或 Cloudera ODBC 2.0 及以上驱动的诸如 BI 工具之类的应用用来传递命令和接收结 所有通过java jdbc驱动调用的时候就使用21050端口,但是golang是通过thrift协议来调用impala的,就是使用21000端口
  • 本文作者: Randy
  • 本文链接: http://www.itrensheng.com/archives/golang_impala
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# Phoenix # HBase # Kudu # ElasticSearch # Spring # 数据结构 # 操作系统 # Kettle # Azkaban # Sqoop # Hive # Yarn # Redis # Mybatis # Impala # Cloudera # 大数据 # HDFS # mycat # shell # Linux # 架构 # 并发 # mysql # sql # golang # java # 工具 # spark # kafka # 人生
golang系列(七)beego中使用swagger的坑
Spark系列-核心概念
  • 文章目录
  • 站点概览
Randy

Randy

技术可以暂时落后,但任何时候都要有上进的信念

80 日志
27 分类
31 标签
RSS
Github E-mail
Creative Commons
© 2021 备案号:沪ICP备19020689号-1
Randy的个人网站