
Hive
阿武z
这个作者很懒,什么都没留下…
展开
-
HIVE Map和Reduce数量 优化点
一、Map的数量是怎么计算A、在什么情况下 应该增加Map数量B、在什么情况下 应该减少Map数量二、Reduce的数量是怎么计算代码位置:org.apache.hadoop.hive.ql.exec.mr.MapRedTask函数:setNumberOfReducers、estimateNumberOfReducers影响参数:mapred.reduce.tasks (用户直接设...原创 2020-03-18 18:12:26 · 581 阅读 · 0 评论 -
HIVE - UDTF开发(指定分割符分割字符串,返回对应的大小写字符串)
一、实现展示hive> desc test_split_string;name stringhive> select * from test_split_string;John,SmithJohn,and,Ann WhiteTed,GreenDorothy,-- UDTF: split_stringhive> select ...原创 2020-03-17 21:08:11 · 744 阅读 · 0 评论 -
HIVE - UDAF开发(字符串中出现 指定字符的次数,再求次数的平均数)
一、实现展示hive> desc test_avg_str_in_str;user_id intname stringvalue inthive> select * from test_avg_str_in_str;1 awuz 11 azhaoz 12 zhangsan 22 ...原创 2020-03-17 00:05:54 · 3584 阅读 · 1 评论 -
数仓ETL代码优化 - 表字段 被过滤和聚合的次数
优化案例假设以下代码,在不同的调度任务中重复出现。那么是否可以抽出公共代码,减少资源使用。-- 是否可以将埋点里 搜索相关的 整合成一张表select *from app_event_trackingwhere op_type = '搜索'-- 是否可以将每日的用户下单情况 整合成公共层表select user_id, ...from order_itemwhere cre...原创 2020-03-12 17:41:10 · 340 阅读 · 1 评论 -
ID-Mapping Hive Sql 初始化
背景例:A、B、C 设备属于同一个用户,C、D 属于同一个用户,D、E 属于同一个用户。则可以将 A、B、C、D、E 当作同一个用户。1、数据初始化create table test_id_mapping ( id_list array<String> comment "设备ID");insert overwrite table test_id_mapping...原创 2020-03-05 00:55:52 · 815 阅读 · 0 评论 -
Hive Sql - Multi Distinct(多个distinct在同一个query中) 优化
背景当多个 distinct 操作同时出现在 select 中,数据会分发多次。容易造成Reduce数据倾斜优化点1、如果不要求精确值,可以使用 spark-sql approx_count_distinct函数 (基数计数 hyperloglog)2、修改SQL基数数据如下, 需要计算 不同渠道下的 不同周期 的访问uvcreate table if not exists tmp.m...原创 2020-02-18 01:45:04 · 2210 阅读 · 0 评论 -
bitmap和布隆过滤器简单总结
一、BitMap解决的问题:大数据量下的排序、查找、去重。1、关键通过 bit位 表示一个数值的状态(是否存在),那么1MB能大约表示 800万数值 (1,000,000B * 8 bit )2、局限性:1、内存限制:10位的数值(即99亿), 占用 1.25GB内存2、一般应用在数值类型。字符串映射到 BitMap 存在Hash碰撞的问题(引入bloom filter)3、不适合数...原创 2020-02-15 15:24:36 · 466 阅读 · 0 评论 -
HIVE元数据使用场景落地(python版本)
一、背景参考数仓-HIVE元数据收集指标二、使用场景举例1、调度元数据通知-关键任务完成时间异常-关键任务没按时完成2、存储元数据占用HDFS空间TOP表HDFS文件数 新增TOP表3、计算元数据数据倾斜任务列表大任务TOP列表三、CODE DEMOHIVE元数据搜集代码:HIVE元数据搜集(python版本)HIVE元数据落地代码...原创 2020-01-28 12:11:55 · 408 阅读 · 0 评论 -
HIVE元数据收集(python版本)
已有工具1、ZEUS (调度平台)2、Dr-Elephant (任务的性能监控和调优的工具)3、Apache Griffin (数据质量工具)最终落地Hbase表结构row_key: action_id__hive_table(调度元数据)列族: scheduler列: 调度名、开始时间、结束时间、action_id、所属用户(计算资源元数据)列族: computing...原创 2020-01-26 00:30:13 · 915 阅读 · 1 评论 -
跑满YARN资源-优化方向
背景: YARN资源使用情况如图从内存使用占比、Pending数量 可以看到 YARN的资源使用情况是很紧张的。优化方向1、JOB的执行引擎 MR -> Spark Sql2、监控YARN资源在队列和整体使用情况:A、将不同类型的JOB 调整到不同队列中。B、调整队列的资源分配比例,抢占比例。C、调整JOB的开始执行时间,错开YARN资源使用高峰执行。3、JOB优...原创 2019-12-14 20:12:25 · 826 阅读 · 0 评论 -
数仓-HIVE元数据收集指标
通过对HIVE表进行打标签,构建基础元数据表1、存储2、应用场景3、数据质量4、重要等级5、调度任务6、计算资源7、被使用情况1、存储HIVE表是否分区、量级(可定阈值 设定等级)优化集群存储资源时、快速找到大表。方便监控表的量级变化情况2、应用场景从应用层入手(画像、广告、财务等),通过血缘链路,给涉及到的HIVE表,打上应用场景的标签清楚知道 表是能应用在什么场景...原创 2019-12-02 11:54:24 · 909 阅读 · 0 评论 -
hive -f 文件内容里的注释引发小Bug
问题记录run.hql 文件内容如下-- line1 -- line2在执行 hive -f run.hql 时会报错,原因是第二行没有作为注释 被过滤掉,当正常代码执行查看Hive源码https://github.com/apache/hive/blob/master/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.javap...原创 2019-10-31 14:07:11 · 576 阅读 · 0 评论 -
阿武的博客文档索引
1、Hadoop组件安装搭建CDH 阿里云 (Step 1: 启动hdfs)搭建CDH 阿里云 (Step 2: 启动yarn)搭建CDH 阿里云 (Step 3: 搭建Hive)Hive On Spark搭建(cdh)2、元数据HIVE 字段级血缘分析 写入Neo4j3、JOB计算管理Dr Elephant(HIVE JOB监控调优)安装使用获取YARN上执行时间最长的JOB列...原创 2019-10-24 21:48:13 · 434 阅读 · 3 评论 -
Dr Elephant(HIVE JOB监控调优)安装使用
一、简单介绍Dr.elephant是一款对Hadoop和Spark任务进行性能监控和调优的工具官方介绍:https://github.com/linkedin/dr-elephant/wikigithub地址:https://github.com/linkedin/dr-elephant安装文档:https://github.com/linkedin/dr-elephant/wiki/Q...原创 2019-10-24 21:07:51 · 744 阅读 · 1 评论 -
Hive元数据 表结构
Hive元数据简单整理原创 2018-08-04 14:13:43 · 715 阅读 · 3 评论 -
Hive orc表 删除字段
说明Unfortunately, you can’t! The only way you can delete column from existing table is by using REPLACE COLUMNS keyword. But this can be done only for tables with a native SerDe (DynamicSerDe, Me...原创 2018-08-07 22:43:54 · 3963 阅读 · 0 评论 -
同一个sql 在Hive和spark-sql 跑出结果不一样记录
表Schemahive&gt; desc gdm.dim_category; name string 分类名称 org_code string ...原创 2018-10-23 13:10:41 · 4494 阅读 · 0 评论 -
hive collect_set 结果顺序不一致
HQL 例子select distinct channelfrom( select user_id, collect_set(channel) as channel from test_table group by user_id) t1;结果出现了[“APP”,“QQ浏览器”][“QQ浏览器”,“APP”]查看代码得知 collect_se...原创 2018-12-24 11:41:07 · 9787 阅读 · 10 评论 -
Sqoop 同步Parquet partition Hive表
import (mysql to hive)不能同步orc或parquet,能同步textfile类型way 1 (同步到hive表)sqoop import \ --connect jdbc:mysql://localhost:3306/mysql_db \ --username mysql_user \ --password mysql_pass \ --table m...原创 2019-05-09 21:58:57 · 2203 阅读 · 5 评论 -
HIVE分区表添加字段cascade 执行时间过长出现bug
执行hive分区表添加字段命令alter table db_name.staging_user_log_minutesadd columns( `ext_main_business_line` string COMMENT '主业务线') cascade;因为历史分区量太大,所以执行命令花了很长的时间,正好又有新的调度任务写入新分区,导致有的分区没有添加上新的字段找到问题路径(通过...原创 2019-05-20 16:44:15 · 4040 阅读 · 0 评论 -
HIVE SQL 计算留存率 思路
问题计算每日访问用户 在之后日期的 留存数基础表 每日访问用户IDcreate external table if not exists user_visit_date ( user_id bigint comment '用户ID') comment '每日访问用户'partitioned by (p_day date comment '分区日期')stored as parque...原创 2019-06-26 19:26:55 · 6242 阅读 · 2 评论 -
HIVE 字段级血缘分析 写入Neo4j
Step 1. 利用HIVE Hook LineageLogger 获取字段之间的依赖关系注意:LineageLogger Hook 是Hive2.0版本之后存在的,如果HIVE版本不够需要升级HIVE版本。PS.CDH有的HIVE版本添加此功能下面以hive 2.5.3版本为例添加参数vim /usr/local/hive/conf/hive-site.xml<property&...原创 2019-06-28 19:11:06 · 12316 阅读 · 9 评论 -
HIVE表 占用HDFS空间 TOP表查询
思路1、通过Hive元数据,获取到表和HDFS的对应关系2、通过 pyhdfs工具类的get_content_summary方法 快速获取到占用HDFS大小代码如下# requirements.txtMySQL-python==1.2.5PyHDFS==0.2.1torndb==0.3#coding:utf-8import pyhdfsimport torndbhive_...原创 2019-06-29 12:36:06 · 1175 阅读 · 0 评论 -
HIVE SQL数据倾斜情况以及解决办法
如何查看历史所有数据倾斜的任务参考之前的博客 获取YARN上执行时间最长的JOB列表,并查看是否存在数据倾斜1. JOIN 数据倾斜1.1 空值问题select t1.idfrom table_a t1left join table_b t2on t1.id = t2.id如果 t1.id 存在过多的NULL值,那么可能会造成数据倾斜解决办法如下 (将NULL赋 随机值)...原创 2019-06-30 23:38:59 · 4328 阅读 · 0 评论 -
Hive Metastore部署方式
Metastore 有三种部署方式embedded mode (Metastore 和 db 都运行在 Hive Service进程中)local mode (Metastore 运行在 Hive Service进程中)remote mode (Metastore , Hive Service, db 运行在不同的进程中)Embedded ModeCloudera reco...原创 2018-08-04 14:13:16 · 1434 阅读 · 0 评论