主要使用beeline工具连接到远程hive服务端,这里的beeline所在节点不必是hadoop集群节点
1.上传hive的安装包并解压
beeline所在的客户端节点只需要一个hive安装包即可(这里上传到/opt)
sudo tar -zxvf apache-hive-2.3.4-bin.tar.gz
cd apache-hive-2.3.4-bin/bin
2.修改hadoop集群的配置
修改hdfs-site.xml
,添加配置
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
修改core-site.xml
核心配置文件
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value> <!-- 所有主机都可以连接 -->
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value> <!-- 所有组的hadoop用户都可以连接 -->
</property>
其中hadoop.proxyuser.hadoop.hosts
与hadoop.proxyuser.hadoop.groups
中每个的第二个hadoop实质上是hive安装时使用的用户名所以如果你不是hadoop用户的话应该改成
例如hadoop.proxyuser.用户名.hosts
和hadoop.proxyuser.用户名.groups
。
3.重启hadoop集群(hdfs和yarn等)
在NameNode所在节点:
stop-dfs.sh
start-dfs.sh
在ResourceManager所在节点:
stop-yarn.sh
start-yarn.sh
4.在hive安装的节点(hive安装客户端所在节点)启动hive服务端(hiveserver2)
[xxxx@xxx apache-hive-2.3.4-bin] cd bin
[xxxx@xxx bin] nohup hiveserver 1>>hiveserver2_info.log 2>>hiveserver2_error.log &
5.回到beeline连接的节点连接启动beeline工具
cd cd apache-hive-2.3.4-bin/bin
./beeline
然后进入了beeline: (未连接状态
)
beeline>
远程连接到hiveserver:
beeline> !connect jdbc:hive2://主机名:10000
完成:
0: jdbc:hive2://主机名:10000> show databases;
之后就可以像在hive的客户端交互式界面里面一样写hql了。