使用beeline/jdbc 连接hive,impala,sparksql

本文介绍了如何通过Beeline客户端连接Hive与SparkSQL的方法,包括配置细节与连接验证步骤。此外,还提供了更改SparkThriftServer端口来区分两者的解决方案,并简述了连接Impala的过程。

hive和sparksql的端口号都是10000,所以在连接时我们要区分连接的是sparksql还是hive。

连接hive:

beeline -u jdbc:hive2://cdh1:10000/default


当出现Connected to: Apache Hive 字样时,表示连接hive成功。


连接sparksql:

在cdh2上启动spark thirft-server服务:

/opt/cloudera/parcels/CDH/lib/spark/sbin/start-thriftserver.sh

再使用beeline连接sparksql:

beeline -u jdbc:hive2://cdh2:10000/default


当出现Connected to: Spark SQL 字样时,表示连接spark sql成功。


从上可以看出,连接hive和连接sparksql的方式是一样的,端口号都是10000。当连接的是hiveserver2所在的节点(即jdbc:hive2://cdh1中的cdh1)时,连接的是hive;当连接的是spark thirft-server所在的节点时,连接的是sparksql。

为了方便连接,我们可以修改spark thrift-server的端口号,如改成10010.


连接impala:

beeline -u jdbc:hive2://cdh1:21050/default

端口号是21050.



<think>我们正在回答用户关于Beeline的问题。根据引用资料,BeelineHiveServer2提供的一个命令行工具,基于SQLLineCLI的JDBC客户端。它可以连接多种数据库,包括HiveImpala、MySQL、Oracle等。使用Beeline有两种模式:嵌入模式和远程模式。用户的问题包括三个部分:定义、基本用法和在Linux系统中的连接方式。我们将按照以下结构回答:1.Beeline的定义2.Beeline的基本用法(包括两种模式)3.在Linux系统中通过Beeline连接数据库或服务的具体步骤(以连接ImpalaHive为例)注意:引用资料中提供了多个引用,我们将适当引用这些资料。另外,根据系统级指令,我们需要在回答中自然地添加引用标识,例如在引用资料的末尾加上[^1]等。同时,我们还需要生成相关问题。开始回答:</think>### Beeline工具的定义与使用指南 #### **1. Beeline的定义** Beeline是由HiveServer2提供的**命令行工具**,基于SQLLine CLI开发的JDBC客户端[^1][^2]。它用于通过JDBC协议连接支持SQL的数据库或大数据服务(如HiveImpala、MySQL等),替代传统的Hive CLI工具。核心特点包括: - **两种运行模式**: - **嵌入模式**:在本地直接运行(类似Hive CLI)。 - **远程模式**:通过Thrift协议远程连接服务端(生产环境常用)[^1]。 - **安全性**:支持Kerberos认证和SSL加密传输。 - **跨平台**:纯Java实现,可在任何支持Java的系统中运行[^2]。 #### **2. Beeline的基本用法** ##### **(1) 安装与启动** - Beeline通常随Hive或Hadoop生态组件预装。若需独立安装,需包含以下包: ```bash hive-jdbc.jar, hive-service.jar, libthrift.jar # JDBC驱动依赖 ``` - 启动命令: ```bash beeline # 进入交互式命令行 ``` ##### **(2) 连接服务端语法** 通用连接格式: ```bash !connect jdbc:<database_type>://<host>:<port>/<database_name> ``` - **参数说明**: - `<database_type>`:数据库类型(如 `hive2`、`mysql`)。 - `<host>:<port>`:服务端地址与端口(HiveServer2默认端口10000)。 - `<database_name>`:目标数据库名(如Hive中的 `default` 库)。 ##### **(3) 操作示例** ```bash # 连接HiveServer2 beeline> !connect jdbc:hive2://node01:10000/default Enter username: hive_user # 输入用户名 Enter password: ********* # 输入密码 # 执行SQL查询 0: jdbc:hive2://node01:10000> SELECT * FROM employee; ``` #### **3. Linux系统中连接数据库/服务的步骤** 以连接**Impala**和**MySQL**为例: ##### **(1) 连接Impala** ```bash beeline -u "jdbc:hive2://impala-server:21050/default;auth=noSasl" -n impala_user ``` - **关键参数**: - `auth=noSasl`:Impala通常禁用SASL认证[^1]。 - `-n`:直接指定用户名(避免交互式输入)。 ##### **(2) 连接MySQL** ```bash beeline -u "jdbc:mysql://mysql-server:3306/metastore" -d com.mysql.jdbc.Driver -n root ``` - **参数说明**: - `-d`:指定JDBC驱动类(需提前将`mysql-connector-java.jar`放入`$HIVE_HOME/lib`)[^4]。 ##### **(3) Kerberos认证连接(安全环境)** ```bash beeline -u "jdbc:hive2://hive-server:10000/default;principal=hive/_HOST@REALM.COM" ``` #### **4. 常见问题排查** - **连接拒绝**:检查服务端是否启动(Hive需启动`hiveserver2`服务[^3])。 - **驱动缺失**:将数据库JDBC驱动JAR包放入`$BEELINE_HOME/lib`。 - **权限错误**:确认用户名/密码或Kerberos票据有效。 > **注意**:Beeline命令需在配置Hadoop生态环境变量的Linux终端执行,且确保网络可访问目标服务端[^1][^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值