本文介绍如何通过DbVisualizer和kettle远程访问Hive 2。
1、Hadoop设置
通过以下命令启动远程服务:

hadoop@bdi:~$ hive --service hiveserver2 >/dev/null &
远程服务对外的端口是10000,启动成功后,使用netstat命令验证:
hadoop@bdi:~$ netstat -antpl|grep 10000
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      3763/java       
tcp        0      0 192.168.120.95:10000    192.168.120.124:63152   ESTABLISHED 3763/java 

如果再启动的过程中报错,可以使用下面的命令进行调试:

hadoop@bdi:~$ hive --hiveconf hive.root.logger=DEBUG,console

默认情况下,是不允许远程以匿名用户访问的,如果访问,会提示如下报错:

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hadoop
这里修改需要hadoop的配置文件core-site.xml,加入以下内容:
    
      hadoop.proxyuser.hadoop.hosts
      *
    
    
      hadoop.proxyuser.hadoop.groups
      *
    

注意:这里的hadoop用户是操作系统上管理hadoop服务的用户,根据自己实际情况进行替换。
完了后重启hadoop服务。
2、Hive的JDBC驱动下载
JDBC驱动可以从官方网站下载,选择hive对应版本的jdbc驱动即可。我这里使用的是hive 2.2.3,所以下载的驱动名称为:hive-jdbc-2.3.2-standalone.jar
Hive远程访问操作_第1张图片
下载完成后,将文件拷贝至DbVisualizer的lib文件夹。
3、配置DbVisualizer
初次配置连接的时候,会提示识别不了jdbc驱动,手工确认jdbc驱动的路径并加载即可。
Hive远程访问操作_第2张图片
4、配置Kettle访问
首先,还是把hive的jdbc驱动复制到kettle的lib目录下,然后新建“转换”-->数据库连接,如下图所示:
Hive远程访问操作_第3张图片