2018.10.19 hive

本文介绍了使用HiveCLI执行SQL语句的基础操作,包括查看数据库、表,使用数据库,查询表,查看表的定义等。同时,文章还讨论了通过脚本获取Hive数据的方法,包括设置hiveconf参数和使用DAY作用于表内容的理解。最后,作者分享了根据已有脚本成功查询Hive数据的经验。

       Hive:

       使用hive cli,只是执行sql语句,并未使用其他的功能,暂时用不上;具体操作了查看数据库、表,使用数据库,查询表,查看表的定义,速度很慢,只是简单的使用。

       阅读以前的获取数据的脚本,理解功能,主要就是查询各个表保存到文件中,再使用sed加上表头,虽然很长,但是意思是一样的;其中关于使用—hiveconf设置hive并不明白什么意思,好像是指定队列;还有就是DAY的作用,这个应该与表的内容相关,除此之外并没有什么特别的内容。

       之后自己根据这个脚本改写了尝试了查询功能,修改表名、函数名、路径和表头,结果也成功了,至此读取hive中的数据可以说没有问题了。

       最后简单看了一下和日志相关的表的定义,有些字段比较多,具体下周正式开始。

### Hive JDBC 驱动程序使用说明 #### 1. 加载驱动类 为了通过JDBC连接到Hive,在Java应用程序中需要指定`org.apache.hive.jdbc.HiveDriver`作为驱动类名[^1]。然而,如果遇到`ClassNotFoundException`异常,则表明当前环境中缺少必要的Hive JDBC库文件或路径配置不正确[^3]。 #### 2. 解决方案与注意事项 当尝试启动应用并加载此驱动时出现问题,可能是因为使用的API版本过期或是环境设置不当所致。对于MySQL而言,官方已建议采用新的驱动器类`com.mysql.cj.jdbc.Driver`来替代旧版的实现方式[^2]。同样地,针对Hive的情况,确保所依赖的jar包是最新的稳定发行版,并且其位置已被正确加入到了项目的classpath当中[^4]。 ```python import jaydebeapi import jpype # 启动JVM前需确认hive-jdbc-uber-x.x.x.jar的实际存储地址 jpype.startJVM( jpype.getDefaultJVMPath(), "-ea", f"-Djava.class.path=D:\\DB\\hive-jdbc-uber-2.6.5.0-292.jar" ) conn = jaydebeapi.connect( 'org.apache.hive.jdbc.HiveDriver', 'jdbc:hive2://<host>:<port>/default', ['username', 'password'], ["D:\\DB\\hive-jdbc-uber-2.6.5.0-292.jar"] ) ``` 请注意替换上述代码中的占位符(如`<host>`、`<port>`)为实际的服务端信息。另外,考虑到不同操作系统间可能存在差异,应当验证目标机器上的具体安装目录结构以及相应的权限情况。 #### 3. 数据插入错误处理 在某些情况下,向Hive表内写入记录可能会触发`HiveException`异常,这通常是由元数据统计自动收集功能引起的约束冲突。为了避免此类问题的发生,可以在创建新表之前禁用该特性: ```sql SET hive.stats.autogather=false; ``` 或者利用LOAD DATA语句预先填充部分测试数据至目的表格里,从而绕开这一限制条件[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值