Hive
TomAndersen
新目标:喜欢上读书
展开
-
Hive之配置和使用LZO压缩
前言OS:CentOS 7Hive:2.3.0Hadoop:2.7.7MySQL Server:5.7.10Hive官方手册:LanguageManual LZO在配置Hive使用lzo压缩功能之前,需要保证Hadoop集群中lzo依赖库的正确安装,以及hadoop-lzo依赖的正确配置,可以参考:Hadoop配置lzo压缩温馨提示:Hive自定义组件打包时,不要同时打包依赖,避免各种版本冲突,只将额外的依赖添加到classpath中即可配置过程一、配置H原创 2020-06-21 22:40:24 · 4028 阅读 · 1 评论 -
Hive之中文乱码问题
前言Hive:2.3.0Hadoop:2.7.7MySQL Server:5.7.10OS:CentOS 7本文主要演示如何解决Hive注释内容(即COMMENT)中出现中文乱码的问题原因Hive中的表字段等注释信息都存储在元数据库metastore中(本文中的元数据存储在MySQL的hive_db数据库中),当使用desc命令查看表字段的注释信息时,Hive会直接读取元数据库中的hive_db.COLUMNS_V2表,同样的修改元数据库中此表中的内容会直接反馈到desc的查询结果中。故原创 2020-06-13 17:21:50 · 1303 阅读 · 0 评论 -
Hive中使用count(1)或count()统计行数时结果为0的原因
前言Hive:2.3.0Hadoop:2.7.7JDK:1.8.0_221原因因为执行count(1)或count(*)统计行数时,默认会从Hive的元数据库中查询 rowsNum 对应值作为结果返回,一般情况下,如果是使用加载数据文件load data的方式填充表数据,则不会收集此统计信息,Hive收集的统计信息与收集时机见官方文档。解决方案:方案一:使用ANALYZE命令手动更新表统计信息,如:ANALYZE TABLE Table1 COMPUTE STATISTICS;原创 2020-06-04 23:31:22 · 4722 阅读 · 0 评论 -
Hive中配置Apache Tez运行MR
前言Hive:2.3.0Hadoop:2.7.7JDK:1.8.0_221Tez:0.9.1本次配置Apache Tez只是用于Hive执行MR任务,而非Hadoop全局配置,并且使用的是已编译二进制压缩包Hadoop-Tez兼容性:Apache Tez 0.9.0中使用了部分Hadoop 2.7.0开发包,因此如果Hadoop是2.7.x版本,建议使用0.9.0及更新版本的Tez,避免发生兼容性问题。而对于Hadoop 2.6.x版本,官方建议使用Tez 0.8.3及更新版本的TezHiv原创 2020-06-04 23:30:50 · 1934 阅读 · 1 评论 -
Hive On Tez报错汇总
前言Hive:2.3.0Hadoop:2.7.7JDK:1.8.0_221Tez:0.9.1报错一报错内容:在Hive下使用Tez引擎执行MR Job时报错:Container killed on request. Exit code is 143问题分析:从Container killed on request这几个关键字就可以猜测,Container在非正常结束时被kill,很有可能就是Container使用的内存超出Container限制导致的。查看Hive运行日志:Hiv原创 2020-06-04 23:24:28 · 1728 阅读 · 0 评论 -
SQL求解TopK问题
前言本文主要用于记录TopK问题的一些简答的SQL解法。如果读者有更好的解法,或者觉得博主方法存在缺陷,欢迎在评论区交流。测试用表表结构:CREATE TABLE employees( `employee_id` int(6) NOT NULL auto_increment, -- '员工编号' `salary` double(10,2) DEFAULT NULL,-- '月薪' `department_id` int(6) DEFAULT NULL, -- '部门ID原创 2020-05-31 17:19:45 · 1490 阅读 · 0 评论 -
Hive统计连续登录n天的用户登录信息
前言Hadoop:2.7.7Hive:2.3.0本文主要练习如何使用Hive SQL统计练习登录n天的用户登录信息,主要使用窗口函数。测试用表表数据:1 Alise 2020-5-12 09:25:562 Alise 2020-5-13 10:25:303 Alise 2020-5-15 05:25:054 Alise 2020-5-15 15:23:115 Alise 2020-5-16 21:06:146 Bob 2020-5-12 11:17:487 Bob 2020-5原创 2020-05-29 21:17:09 · 1764 阅读 · 0 评论 -
Hive中distinct和group by去重性能对比
前言操作系统:CentOS 7hadoop:2.7.7hive:2.3.0实验目的:本文主要测试在某字段各种不同值个数情况下,记录对此字段其使用DISTINCT/GROUP BY去重的查询语句执行时间,对比两者在不同场景下的去重性能实验表格:表名记录数查询字段不同值个数DISTINCTGROUP BYtab_11000003tab_210000010000实验过程1)创建测试用表drop table if exists tab_1;原创 2020-05-29 11:34:39 · 675 阅读 · 0 评论 -
Hive之配置使用snappy压缩
前言操作系统:CentOS 7hadoop:2.7.7hive:2.3.0Hive中配置snappy压缩,可以分别在Mapper输出阶段和Reducer输出阶段使用压缩算法。也可以将压缩后数据文件加载到表中用于查询,Hive会通过后缀名自动识别对应的压缩格式,并在查询时进行解压,但需要保持数据文件和表格式相同,否则只会显示结果全为NULL查看本机目前可供Hadoop使用的压缩算法使用以下命令,可以查看是否有相应压缩算法的库,如果显示为false,则需要额外安装(CentOS原创 2020-05-28 22:34:49 · 3105 阅读 · 3 评论 -
Hive自定义表生成函数UDTF的自定义实现Demo
前言Hive:2.3.0由于实际生产环境中,Hive自带的内建函数无法覆盖所有的应用场景,所以时常需要进行自定义函数User-Defined Function(UDF),以满足实际生产需求。本文主要演示如何实现自定义表生成函数User-Defined Table-Generating Function(UDTF),此类函数的特点是一进多出创建Hive函数时,如果指定为临时的(temporary)则可以在所有数据库下使用,但只能在当前会话中使用,退出后自动删除;如果指定为持久的(per原创 2020-05-28 21:15:20 · 646 阅读 · 0 评论 -
Hive2.3.0之入门级安装教程
前言Hadoop:2.7.7Hive:2.3.0MySQL:5.7.10JDK:1.8.0_221mysql-connector-java:5.1.38下载地址Apache软件归档分发目录Apache Hive1. Hive安装部署部署Hive的前提是保证Hadoop集群(或者standalone本地模式)已经安装并配置正确1)解压Hive到指定路径下tar -xz...原创 2020-05-07 09:47:45 · 798 阅读 · 0 评论