Hive Beeline

Beeline是Hive 0.11引入的新的交互式CLI,基于SQLLine,可以作为Hive JDBC Client端访问Hive Server2,启动一个Beeline就是维护一个session。
Hive Server1中我们习惯了用Hive CLI,方式如下,

[trafodion@n12 udr]$ hive
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
17/03/10 15:20:22 WARN mapreduce.TableMapReduceUtil: The hbase-prefix-tree module jar containing PrefixTreeCodec is not present.  Continuing without it.
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/jars/hive-common-1.1.0-cdh5.7.2.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>

而用Beeline连接Hive则是以下这样,

[trafodion@n12 udr]$ beeline
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
17/03/10 15:14:30 WARN mapreduce.TableMapReduceUtil: The hbase-prefix-tree module jar containing PrefixTreeCodec is not present.  Continuing without it.
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
Beeline version 1.1.0-cdh5.7.2 by Apache Hive
beeline> !connect jdbc:hive2://n11:10000/default
scan complete in 3ms
Connecting to jdbc:hive2://n11:10000/default
Enter username for jdbc:hive2://n11:10000/default: hive
Enter password for jdbc:hive2://n11:10000/default: ****
Connected to: Apache Hive (version 1.1.0-cdh5.7.2)
Driver: Hive JDBC (version 1.1.0-cdh5.7.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://n11:10000/default>

上面的jdbc:hive2://n11:10000/default,即是Hive Connection URL,n11为Hive Server2节点的IP,10000为Hive Server2默认的端口号,default为Hive默认的数据库名称。
关于Beeline命令行的使用,请参考:https://cwiki.apache.org//confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-BeelineExample

<think>好的,用户遇到了Hive Beeline中显示“No current connection”的问题,需要解决方案。首先,我得回忆一下相关的知识,并结合提供的引用内容来整理答案。 根据引用2、3、4中的信息,出现这个错误是因为Beeline默认不会自动连接Hive,需要手动建立连接。用户可能在进入Beeline后没有执行连接命令就直接操作,导致没有当前连接。解决方案主要有两种:一种是手动输入连接命令,另一种是配置快捷命令自动连接。 首先,手动连接的方法是在Beeline中输入!connect命令,并指定JDBC URL,然后输入用户名和密码。例如,引用2提到输入!connect jdbc:hive2://cdp01:10000,然后输入MySQL的账户密码。这里需要注意,用户名和密码是否正确,是否具有权限访问Hive元数据库。 其次,自动连接的方案是创建一个自定义脚本或别名,使得每次启动Beeline时自动连接。比如,引用2和3中的用户编写了bhive脚本,包含连接参数,如-u指定URL,-n用户名,-p密码。这可以避免每次手动输入的麻烦,提高效率。 另外,引用5提到可能需要初始化元数据,如果元数据库没有正确初始化,也会导致连接问题。需要检查是否执行了schematool进行初始化,确保元数据表结构正确。 还要考虑网络和配置问题。比如,HiveServer2是否在指定端口运行,防火墙是否开放,以及hive-site.xml中的配置是否正确。例如,hive.server2.thrift.port是否为10000,hive.server2.authentication是否设置正确。 总结下来,解决方案分步骤的话应该是:先检查HiveServer2状态,确认端口监听正常;然后进入Beeline后手动连接;若需要频繁使用,配置快捷命令;同时检查元数据是否初始化正确,以及权限和网络配置。可能还需要验证用户名密码是否正确,尤其是引用4中提到需要输入存储元数据的MySQL账户密码,这可能和Hive的权限设置有关。 此外,用户可能没有正确设置权限,比如在脚本中使用明文密码可能存在安全风险,但作为临时解决方案可行。需要提醒用户注意安全性,或者使用更安全的方式处理密码。 最后,整理这些步骤,用清晰的结构呈现,确保用户能一步步解决问题。同时生成相关问题,帮助用户深入理解可能遇到的类似问题,比如连接失败的其他原因、权限配置或优化连接方式等。</think>### Hive Beeline "No current connection" 解决方案 #### 问题原因 Beeline默认不会自动连接Hive服务,直接执行操作会触发"No current connection"错误[^2][^3][^4]。需手动建立连接或通过参数自动连接。 --- #### 分步解决方案 1. **确认HiveServer2运行状态** - 检查HiveServer2是否在指定端口(默认10000)运行: ```bash netstat -an | grep 10000 ``` - 若无监听,需启动服务: ```bash hive --service hiveserver2 & ``` 2. **手动连接方式** - 进入Beeline后执行连接命令: ```bash beeline !connect jdbc:hive2://<主机名>:<端口号> # 例如:jdbc:hive2://cdp01:10000 ``` - 输入Hive元数据库的账户和密码(通常是MySQL或其他数据库的凭据)[^4]。 3. **自动连接配置** - 创建快捷命令脚本(如`bhive`),直接附加连接参数: ```bash beeline -u jdbc:hive2://cdp01:10000 -n <用户名> -p <密码> # 示例:-n hive -p123456 [^3] ``` - 赋予脚本执行权限: ```bash chmod +x /usr/bin/bhive # 根据实际脚本路径调整 ``` 4. **检查元数据初始化** - 若元数据库未正确初始化,执行: ```bash schematool -dbType mysql -initSchema # 根据实际数据库类型调整[^5] ``` 5. **验证网络与权限** - 确保防火墙未阻止端口10000。 - 检查`hive-site.xml`中`hive.server2.thrift.port`配置是否匹配。 - 确认用户名/密码与元数据库权限一致(如MySQL的hive用户权限)。 --- #### 配置示例 ```bash # 示例脚本 bhive 内容(路径:/usr/bin/bhive) #!/bin/bash beeline -u jdbc:hive2://cdp01:10000 -n hive -p123456 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据源的港湾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值