【Hive】Beeline CLI介绍

本文详细介绍了Beeline,Hive的JDBC客户端,包括其与HiveServer2的交互方式、启动步骤以及如何在嵌入式和远程模式下运行。此外,还展示了如何解决使用Beeline连接Hive时遇到的权限问题,并提供了Beeline的基本命令和Hive操作示例。
摘要由CSDN通过智能技术生成
Beeline,它其实是HiveServer2的JDBC客户端,基于SQLLine命令行接口。Beeline Shell可以工作在嵌入式模式和远程模式,在嵌入式模式中,它运行一个嵌入式的Hive(类似于Hive CLI),在远程模式中,通过Thrift连接到一个单独的HiveServer2进程,从Hive 0.14开始,当Beeline和HiveServer2一起使用时,它会从HiveServer2打印执行查询的日志信息到STDERR。建议在生产环境使用远程HiveServer2模式,因为这样更安全,不需要为用户授予直接的HDFS/Metastore访问权限。

一 Hive环境
hive> select version();
OK
2.3.3 r8a511e3f79b43d4be41cd231cf5c99e43b248383
Time taken: 11.166 seconds, Fetched: 1 row(s)
二 运行Beeline

Hive的运行依赖于Hadoop,所以首先启动Hadoop,而Beeline的运行必须首先启动HiveServer2,下面将分别介绍:

1 启动HDFS
[hadoop@strong ~]$ start-all.sh
注:该脚本将会被弃用,建议使用start-dfs.sh and start-yarn.sh启动HADOOP。
2 启动HiveServer2

1)方法一
[hadoop@strong ~]$ hiveserver2
2)方法二
[hadoop@strong ~]$ hive --service hiveserver2
3 启动Beeline

1)方法一
[hadoop@strong ~]$ beeline
2)方法二
[hadoop@strong ~]$ hive --service beeline
beeline> !connect jdbc:hive2://localhost:10000/default
Connecting to jdbc:hive2://localhost:10000/default
Enter username for jdbc:hive2://localhost:10000/default: hadoop
Enter password for jdbc:hive2://localhost:10000/default: ******
Connected to: Apache Hive (version 2.3.3)
Driver: Hive JDBC (version 2.3.3)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000/default>
注:进行连接出现如下错误时,需要对/usr/local/hadoop/etc/hadoop/core-site.xml进行配置
要在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值