Hive学习之HiveServer2服务端配置与启动

32 篇文章 ¥9.90 ¥99.00
本文介绍了HiveServer2作为轻客户端的实现,它解决了HiveServer并发请求的问题,支持多客户端并发和认证。内容包括HiveServer2的配置参数、启动方式以及与HTTP传输相关的设置,强调了其在远程客户端操作Hive数据中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,取回结果。HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift server,而HiveServer2却不会。既然已经存在HiveServer为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。

       既然HiveServer2提供了更强大的功能,将会对其进行着重学习,但也会简单了解一下HiveServer的使用方法。在命令中输入hive --service help,结果如下。从结果可以了解到,可以使用hive <parameters> --service serviceName <serviceparameters>启动特定的服务,如cli、hiverserver、hiveserver2等。


                
### 启动 HiveServer2 的教程 #### 配置 HiveSite.xml 文件 为了确保 HiveServer2 能够正常运行,在 `hive-site.xml` 中应配置必要的参数。对于生产环境,建议开启用户模拟功能以保障不同用户间的权限隔离[^1]。 ```xml <property> <name>hive.server2.enable.doAs</name> <value>true</value> <description>Enable/disable user impersonation feature.</description> </property> ``` 此外,还需指定认证方式: ```xml <property> <name>hive.server2.authentication</name> <value>NONE</value> <description>The authentication method to use, NONE means no authentication is required.</description> </property> ``` 请注意,如果希望启用更严格的访问控制,则可以将上述 `<value>` 设置为其他选项如 LDAP 或 KERBEROS 等[^2]。 #### 启动命令 完成以上配置之后,可以通过如下 shell 命令来启动 HiveServer2 服务端进程: ```bash $HIVE_HOME/bin/hiveserver2 & ``` 这会以后台模式启动该服务器实例,并将其日志输出重定向到相应的文件中以便于后续排查问题。 #### 使用 JDBC 进行连接测试 一旦成功启动HiveServer2,就可以利用支持 JDBC 接口的应用程序(例如 FineReport 报表工具)来进行数据查询操作了[^3]。下面是一个简单的 Java 示例代码片段用于验证连通性: ```java import java.sql.Connection; import java.sql.DriverManager; public class TestConnection { public static void main(String[] args) throws Exception { Class.forName("org.apache.hive.jdbc.HiveDriver"); String url = "jdbc:hive2://localhost:10000/default"; Connection conn = DriverManager.getConnection(url); System.out.println("Connected successfully."); conn.close(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyWalker_ONLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值