Hive Server2 访问

Hive Server2 介绍

什么是HiveServer2?

官网解释:HiveServer2(HS2)是一个服务端接口,使远程客户端可以执行对Hive的查询并返回结果。目前基于Thrift RPC的实现是HiveServer的改进版本,并支持多客户端并发和身份验证。

身份验证参数:
hive.server2.authentication

  • NONE: 不进行身份验证检查-普通的SASL传输。任何登录者都拥有超级权限,可以对hive进行任意操作。
  • LDAP: 基于LDAP/AD身份认证。
  • KERBEROS: Kerberos/GSSAPI 认证。
  • CUSTOM: 自定义身份验证提供程序(与hive.server2.custom.authentication.class一起使用)
  • PAM: 可插拔认证模块。
  • NOSASL: 原始传输。需要任意一个用户名,不需要密码,不填写或者填写错误用户名会导致报错。

通过 HiveServer2 就可以使用 JDBC / ODBC 方式来远程连接 Hive 服务,Hive 本质是一个客户端,将 SQL 语法翻译为 MR 或者 Spark 提交到 Yarn,读取 HDFS 文件,将 SQL 语句对应的查询结果输出到文件中。然后发往客户端的过程。

我们知道 HDFS 中的文件都是有权限的,当我们使用不同的角色,访问 HDFS 时,权限粒度也是不一样的。
HiveServer2 作为一个中间代理的服务,提供了两种不同的模式来作为真正访问 HDFS 的角色。

  • hive.server2.enable.doAs 为 true 的时候,表示 hiveServer2 会以提交用户的身份去执行语句。
  • hive.server2.enable.doAs 为 false 的时候,表示使用启动 Hive Server2 进程的用户角色访问 HDFS
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Java中远程访问Hive,你可以使用Hive JDBC驱动程序。下面是一个简单的示例代码,演示如何连接到远程Hive服务器并执行查询: ```java import java.sql.*; public class HiveRemoteAccess { public static void(String[] args) { // 配置远程Hive服务器的连接信息 String driverName = "org.apache.hive.jdbc.HiveDriver"; String connectionUrl = "jdbc:hive2://<hive_server>:<port>/<database>"; // 连接到Hive服务器 try { Class.forName(driverName); Connection con = DriverManager.getConnection(connectionUrl, "<username>", "<password>"); // 创建Statement对象 Statement stmt = con.createStatement(); // 执行Hive查询 String query = "SELECT * FROM <table>"; ResultSet rs = stmt.executeQuery(query); // 处理查询结果 while (rs.next()) { // 读取每行数据 // TODO: 处理数据逻辑 } // 关闭连接 rs.close(); stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 请确保将`<hive_server>`替换为实际的Hive服务器主机名或IP地址,`<port>`替换为Hive服务器的端口号,`<database>`替换为要连接的数据库名称,`<username>`和`<password>`替换为有效的用户名和密码。 代码中的TODO部分是处理查询结果的逻辑,你可以根据自己的需求进行处理。此示例使用的是Hive JDBC驱动程序,你需要将其添加到项目的依赖中。你可以从Apache Hive的官方网站或Maven仓库下载驱动程序。 希望这可以帮助到你实现Java远程访问Hive

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值