前言
由于使用的是远程模式,因此metastore需要单独配置和启动,前面已经搞定配置了,本篇讲如何 启动metastore 以及 新老客户端使用问题。
一、Metastore服务启动
启动方式有两种:前台启动 和 后台启动。
1、前台启动
概念:进程一直占用终端(控制台),直到ctrl+C 结束进程,服务才会关闭。
作用:根据需求添加参数开启debug日志,可以获取详细的日志信息,便于排错。
指令:
1)启动服务:hive安装目录下的bin/hive,加上–service metastore参数;
2)启动debug:hive安装目录下的bin/hive,加上–service metastore --hiveconf hive.root.logger=DEBUG,console 参数。
如:
#启动metastore
/export/servers/apache-hive-3.1.2-bin/bin/hive --service metastore
#开启debug日志
/export/servers/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
补充:这种方式启动的服务,日志是直接显示在屏幕上的。
2、后台启动(推荐)
概念:进程一直在后台运行,直到 kill -9 进程id
,服务才会关闭。
指令:nohup + hive安装下的/bin/hive + --service metastore + &
如:
nohup /export/servers/apache-hive-3.1.2-bin/bin/hive --service metastore &
#注意:
- 执行命令后需要多按一个回车;
- jps #查看有无RunJar进程生成;
补充:这种方式启动的服务,日志是在当前路径下的nohup.out文件内。
到这里,hive已经搭建好了。
二、Hiveserver2服务启动
Hive官方在hive安装路径下的bin目录下,提供了两个版本的客户端,老版本叫hive,新版本叫beeline。
根据上图可知,
使用hive,启动Metastore服务就能访问mysql;
使用beeline,启动hiveserver2服务+ metastore服务 才能访问mysql。
官方推荐使用二代客户端(beeline),性能更强,安全性更高。
1、启动hiveserver2
前提:由于hiveserver2依赖于metastore,必须先启动metastore,再启动hiveserver2。
#启动metastore
nohup /export/servers/apache-hive-3.1.2-bin/bin/hive --service metastore &
#启动hiveserver2
nohup /export/servers/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &
2、beeline客户端连接
先前我们的hive 和 metastore 都是配置在node1上,为了模拟实际应用场景,我们应该使用别的机子去访问node1上的metastore,从而访问元数据。
注意:我们是无法直接访问到mysql的,是metastore替我们去访问数据。
做法:
- 拷贝node1上的hive安装包给其它机子如node3#同步beeline客户端
- node3启动beeline客户端
- node3连接访问master上的hiveserver2服务
指令:
#1.拷贝安装包
scp -r /export/servers/apache-hive-3.1.2-bin/ node3:/export/servers/
#2. 启动beeline
/export/servers/apache-hive-3.1.2-bin/bin/beeline
#3. 连接访问
beeline> ! connect jdbc:hive2://node1:10000
beeline> root
beeline> 直接回车
补充:jdbc是官方配置的接口,10000是默认端口号