HiveServer2服务简介

HiveServer2

基本概念介绍

1、HiveServer2基本介绍

HiveServer2是一个服务接口,能够允许远程的客户端去执行SQL请求且得到检索结果。HiveServer2的实现,依托于Thrift RPC,是HiveServer的提高版本,它被设计用来提供更好的支持对于open API例如JDBC和ODBC。
HiveServer是一个可选的服务,只允许一个远程的客户端去提交请求到hive中。(目前已被淘汰)

2、Beeline
​ HiveServer2提供了一种新的命令行接口,可以提交执行SQL语句。

hiveserver2的搭建使用

​ 在搭建hiveserver2服务的时候需要修改hdfs的超级用户的管理权限,修改配置如下:

--在hdfs集群的core-site.xml文件中添加如下配置文件
	<property>
		<name>hadoop.proxyuser.root.groups</name>	
		<value>*</value>
    </property>
    <property>
		<name>hadoop.proxyuser.root.hosts</name>	
		<value>*</value>
    </property>
    
--配置完成之后重新启动集群,或者在namenode的节点上执行如下命令
	hdfs dfsadmin -fs hdfs://node01:8020 -refreshSuperUserGroupsConfiguration
	hdfs dfsadmin -fs hdfs://node02:8020 -refreshSuperUserGroupsConfiguration

独立hiveserver2模式

​ 1、将现有的所有hive的服务停止,不需要修改任何服务,在node03机器上执行hiveserver2或者hive --service hiveserver2的命令,开始启动hiveserver2的服务,hiveserver2的服务也是一个阻塞式窗口,当开启服务后,会开启一个10000的端口,对外提供服务。

​ 2、在node04上使用beeline的方式进行登录

登录方式一 用户名和密码没有或随便写
[god@node02 ~]$ beeline -u jdbc:hive2://node03:10000/default [-n god]

登录方式二 用户名和密码没有或随便写
beeline
!connect jdbc:hive2://node03:10000/default [root 123]

共享metastore server的hiveserver2模式搭建

​ 1、在node03上执行hive --service metastore启动元数据服务

​ 2、在node04上执行hiveserver2或者hive --service hiveserver2两个命令其中一个都可以

​ 3、在任意一台包含beeline脚本的虚拟机中执行beeline的命令进行连接

登录方式一 必须输入用户名和密码,用户名和密码是什么无所谓
[god@node02 ~]$ beeline -u jdbc:hive2://node04:10000/default -n god

登录方式二 必须输入用户名和密码,用户名和密码是什么无所谓
beeline
!connect jdbc:hive2://node04:10000/default root 123

HiveServer2的访问方式

1、beeline的访问方式
​	(1)beeline -u jdbc:hive2://<host>:<port>/<db> -n name

​	(2)beeline进入到beeline的命令行
​				beeline> !connect jdbc:hive2://<host>:<port>/<db> root 123

​ 注意:

​ 1、使用beeline方式登录的时候,默认的用户名和密码是不验证的,也就是说随便写用户名和密码即可

​ 2、使用第一种beeline的方式访问的时候,用户名和密码可以不输入

​ 3、使用第二种beeline方式访问的时候,必须输入用户名和密码,用户名和密码是什么无所谓

2、jdbc的访问方式

​ 1、创建普通的java项目,将hive的jar包添加到classpath中,最精简的jar包如下:

commons-lang-2.6.jar
commons-logging-1.2.jar
curator-client-2.7.1.jar
curator-framework-2.7.1.jar
guava-14.0.1.jar
hive-exec-2.3.4.jar
hive-jdbc-2.3.4.jar
hive-jdbc-handler-2.3.4.jar
hive-metastore-2.3.4.jar
hive-service-2.3.4.jar
hive-service-rpc-2.3.4.jar
httpclient-4.4.jar
httpcore-4.4.jar
libfb303-0.9.3.jar
libthrift-0.9.3.jar
log4j-1.2-api-2.6.2.jar
log4j-api-2.6.2.jar
log4j-core-2.6.2.jar
log4j-jul-2.5.jar
log4j-slf4j-impl-2.6.2.jar
log4j-web-2.6.2.jar
zookeeper-3.4.6.jar

或者使用maven

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.3.4</version>
</dependency>

​ 2、编辑如下代码:

package com.chauncy;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class HiveJdbcClient {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";

	public static void main(String[] args) throws SQLException {
		try {
			Class.forName(driverName);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		Connection conn = DriverManager.getConnection("jdbc:hive2://node04:10000/default", "root", "");
		Statement stmt = conn.createStatement();
		String sql = "select * from psn limit 5";
		ResultSet res = stmt.executeQuery(sql);
		while (res.next()) {
			System.out.println(res.getString(1) + "-" + res.getString("name"));
		}
	}
}

运行之后,即可得到最终结果。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HiveServer2是Apache Hive的一个组件,它提供了与Hive进行交互的方式,通常是通过ODBC、JDBC或Thrift接口。如果你的HiveServer2服务运行异常,可能有几种可能的原因和解决方法: 1. 检查HiveServer2服务是否已经启动。你可以通过以下命令来检查服务的状态: ``` systemctl status hive-server2 ``` 如果服务未运行,可以使用以下命令启动它: ``` systemctl start hive-server2 ``` 2. 检查HiveServer2的日志文件以获取更多信息。HiveServer2的日志文件通常位于`/var/log/hive`目录下。查看日志文件可以帮助你确定具体的错误原因。 3. 确保HiveServer2的配置文件正确。你可以检查HiveServer2的配置文件(通常是`hive-site.xml`),确保其中的配置项正确设置。特别是要确保与数据库连接相关的配置项(如数据库URL、用户名和密码)正确配置。 4. 检查与HiveServer2相关的依赖项是否正确安装。如果缺少必要的依赖项,HiveServer2可能无法正常启动。你可以查看HiveServer2的文档或官方网站上的要求,并确保满足所有依赖项。 5. 如果你使用了安全模式(例如Kerberos认证),确保相关的安全配置正确。安全模式可能涉及到更复杂的配置和设置,你可能需要参考HiveServer2的文档或官方网站上的安全配置指南。 如果以上方法仍然无法解决问题,可能存在其他配置或环境问题。更详细的错误信息和日志可能有助于进一步诊断问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值