学科分类
目录
Hadoop技术栈

Hive的管理之远程服务

当我们以JDBC或者ODBC程序登录到Hive中操作数据时,由于使用CLI连接方式不能进行多个节点的同时访问,而且会造成服务器阻塞,且出于对服务器安全性的考虑, Hive服务所部署的服务器通常用户是无法直接访问的,因此,必须选用远程服务启动模式。具体操作步骤如下。

首先,将hadoop01服务器安装的Hive程序分别拷贝到hadoop02和hadoop03服务器上,具体命令如下:

$ scp -r /export/servers/apache-hive-1.2.1-bin/ hadoop02:/export/servers/

$ scp -r /export/servers/apache-hive-1.2.1-bin/ hadoop03:/export/servers/

其次,在hadoop01服务器的Hive的安装包下启动Hiveserver2服务,具体命令如下:

$ bin/hiveserver2

执行完上述命令后,在hadoop01服务器上就已经启动了Hive服务,当前的命令行窗口没有任何反应,无法执行其他的操作。如图1所示。

img

图1 hadoop01服务器上启动Hive的效果图

此时,我们可以使用SecureCRT软件的克隆会话功能(右键会话窗口,点击Clone Session)打开新的hadoop01会话窗口,通过Jps命令可以查看Hive服务启动情况,效果如图2所示。

img

图2 hadoop01服务器 Hive启动情况

在图2中,当前hadoop01机器上新增了一个RunJar进程,该进程即为Hive的服务进程。

再次,在hadoop02服务器的Hive安装包下,通过远程连接命令bin/beeline进行连接,并且输入连接协议,然后根据提示输入Hive服务器的用户名和密码,即可连接到Hive服务,具体指令如下:

// 输入远程连接命令

$ bin/beeline 

// 输入远程连接协议,连接到指定Hive服务(hadoop01)的主机名和端口(默认10000)

beeline> ! connect jdbc:hive2://hadoop01:10000

// 输入连接Hive服务器的用户名和密码

Enter username for jdbc:hive2://hadoop01:10000: root

Enter password for jdbc:hive2://hadoop01:10000: ****

在上述命令中,“! connect jdbc:hive2://hadoop01:10000”是用于指定远程Hive连接协议。其中,hadoop01:10000用来指定要远程连接的Hive服务地址,Hive服务的默认端口号为10000。执行上述指令后,效果如图3所示。

img

图3 hadoop02服务器连接远程Hive服务

最后,在hadoop02服务器上面执行“show databases”命令,查看了数据仓库的列表信息。效果如图4所示。

img

图4 查看数据仓库的列表信息

在图4中,执行“show databases”后,可以成功显示数据仓库的列表信息,说明远程连接Hive服务成功。

小提示:

在连接Hive数据仓库进行相关操作时,会使用到数据库(如MySQL),还会依赖于MapReduce进行数据处理,所以,在进行Hive连接前,必须保证Hadoop集群以及第三方数据库MySQL已经启动,否则,在连接过程中会出现拒绝连接的错误提示。

点击此处
隐藏目录