DEMO-DataGrip对接Hive/Impala

适用模块

客户端

具体说明

客户端工具对接集群

使用示例

DataGrip连接Hive

DataGrip可通过jdbc方式连接Hive/Impala;
驱动依赖Jar包如下:

commons-collections-3.2.2.jar
commons-configuration-1.6.jar
commons-httpclient-3.0.1.jar
commons-logging-1.1.3.jar
curator-client-2.10.0.jar
curator-framework-2.10.0.jar
hadoop-auth-2.9.2.jar
hadoop-common-2.9.2.jar
hive-common-2.1.1.jar
hive-exec-2.1.1.jar
hive-jdbc-2.1.1.jar
hive-metastore-2.1.1.jar
hive-service-2.1.1.jar
httpclient-4.5.6.jar
httpcore-4.4.6.jar
log4j-api-2.16.0.jar
log4j-core-2.16.0.jar
slf4j-api-1.7.25.jar
stax2-api-3.1.4.jar
woodstox-core-5.0.3.jar
zookeeper-3.4.6.jar

# 以上驱动包可通过集群上hive及hadoop客户端中获取或直接通过https://docs.popo.netease.com/docs/205fe444c8ad430485633076b74d77f1 下载集成包

连接信息配置:将URL选项配置为完整JDBC连接串即可

8Qao33

Kerberos支持
# krb5.conf  可从集群节点/etc/krb5.conf拷贝
[libdefaults]

  default_ccache_name = FILE:/tmp/krb5cc_%{uid}  # mac必须添加此配置,否则缓存文件默认为KCM导致客户端认证失败
  default_realm=BDMS.163.COM
  allow_weak_crypto=true
  dns_lookup_realm=false
  dns_lookup_kdc=false
  ticket_lifetime=24h
  renew_lifetime=7d
  forwardable=true
  udp_preference_limit=1

[domain_realm]
  jd.163.org=BDMS.163.COM
  .jd.163.org=BDMS.163.COM

[realms]
  BDMS.163.COM={
    admin_server=bigdata-demo1.jdlt.163.org
    kdc=bigdata-demo1.jdlt.163.org
    kdc=bigdata-demo2.jdlt.163.org
  }
# 配置客户端工具自动kerberos验证,注意keyTab地址为本机电脑上存放访问集群 keytab 文件的地址,可从个人中心下载。所用的keytab principal 前缀,下面的dsc_support,就是访问的用户,需要有相应的hdfs、hive 权限
# jgss.auth
com.sun.security.jgss.initiate{
      com.sun.security.auth.module.Krb5LoginModule required
      useKeyTab=true
      useTicketCache=false
      keyTab="/Users/semon/wks/tools/dsc_support.keytab"
      principal="dsc_support/dev@BDMS.163.COM"
      doNotPrompt=true
      debug=true
      debugNative=true;
   };

VM options配置如下:

-Djava.security.auth.login.config=/Users/semon/wks/tools/jgss.auth  -Djava.security.krb5.conf=/00-conf/demo-krb/krb5.conf -Djavax.security.auth.useSubjectCredsOnly=false
windows系统jgss.auth及VM option中路径同样使用单斜线分割

如有以下报错,由于使用的高版本jdk 存在类加载问题,kerberos 相关配置无法通过连接配置增加,需要添加额外的jvm 参数

class org. apache. hadoop. security. authentication. util. KerberosUtil cannot access class sun. security. krb5.Config (in module java. security. jgss) because module java. security. jgss does not export sun. security. krb5 to unnamed module @233e4784.

此时,VM options配置如下:

--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED -Djava.security.auth.login.config=/Users/semon/wks/tools/jgss.auth  -Djava.security.krb5.conf=/00-conf/demo-krb/krb5.conf -Djavax.security.auth.useSubjectCredsOnly=false

如有报错 "未找到驱动程序类",确认上述 VM options配置的路径里是否有存在空格,可以设置路径不包含空格,或者用双引号将路径引起来

OkZISb

连接测试

Demo-DataGrip对接Hive - 图3 Demo-DataGrip对接Hive - 图4

作者:wangsong