beeline客户端方式采用JDBC方式借助于Hive Thrift服务访问Hive数据仓库。
HiveThrift(HiveServer)是Hive中的组件之一,设计目的是为了实现跨语言轻量级访问Hive数据仓库,有Hiveserver和 Hiveserver2两个版本,两者不兼容,使用中要注意区分。体现在启动HiveServer的参数和jdbc:hiveX的参数上。
beeline相关的Server.Thrift配置
<property>
<name>hive.server2.thrift.bind.host</name>
<value>master</value>
<description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
<description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property>
<name>hive.server2.thrift.http.port</name>
<value>10001</value>
<description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'http'.</description>
</property>
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
<description>Username to use against thrift client</description>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>123</value>
<description>Password to use against thrift client</description>
</property>
启动 hiveserver2 服务
启动 beeline
连接 hiveserver2
!connect jdbc:hive2://master:10000
如果出现上述错误:
修改hadoop 配置文件 etc/hadoop/core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
例如User: zhangsan is not allowed to impersonate root则需要将xml变更为如下格式
<property>
<name>hadoop.proxyuser.zhangsan.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.zhangsan.groups</name>
<value>*</value>
</property>
再次连接