02 2022 档案

摘要:* 1. 什么是冒泡排序* 依次比较两个相邻的元素,满足条件就交换,将当前最大值或最小值交换到最后* 示例(正序)* 原数组 : 5 4 1 2 3* 第一次遍历 : 4 1 2 3 5* 第二次遍历 : 1 2 3 4 5* 第三次遍历 : 1 2 3 4 5* 第四次遍历 : 1 2 3 4 5 阅读全文
posted @ 2022-02-28 18:04 学而不思则罔! 阅读(413) 评论(0) 推荐(0) 编辑
摘要:需求说明 : 如下为某直播平台主播开播及关播时间,根据该数据计算出平台最高峰同时在线的主播 -- 数据准备 -- DDL create table test8 ( `id` string comment '主播id', `stt` string comment '主播登入时间', `edt` str 阅读全文
posted @ 2022-02-23 18:02 学而不思则罔! 阅读(309) 评论(1) 推荐(0) 编辑
摘要:需求描述 : 计算每个品牌总的打折销售天数,注意其中的交叉日期 比如 vivo 品牌,第一次活动时间为 2021-06-05 到 2021-06-15 第二次活动时间为 2021-06-09 到 2021-06-21 其中 9 号到 15 号为重复天数,只统计一次 即 vivo 总打折天数为 202 阅读全文
posted @ 2022-02-22 17:33 学而不思则罔! 阅读(595) 评论(1) 推荐(1) 编辑
摘要:需求 : 计算每个用户最大的连续登录天数,可以间隔一天。解释:如果一个用户在 1,3,5,6 登录游戏,则视为连续 6 天登录 -- 数据准备 -- DDL create table test2 ( `user_id` string comment '用户id', `login_date` stri 阅读全文
posted @ 2022-02-17 11:56 学而不思则罔! 阅读(829) 评论(0) 推荐(0) 编辑
摘要:需求1 : 某个用户连续的访问记录如果时间间隔小于 60 秒,则分为同一个组(同一个组内的数据,访问时间间隔小于60s) 1. 数据准备 -- DDL create table test3 ( `id` string comment '用户id', `showtime` string comment 阅读全文
posted @ 2022-02-16 19:02 学而不思则罔! 阅读(825) 评论(0) 推荐(0) 编辑
摘要:思考1: 怎样判断 有序序列 连续?(获取前置元素差值法、获取序号差值法) 方法1 :(获取前置元素差值法) 1. 获取当前元素的上一个元素(没有时,为当前元素本身) 3 3 5 3 6 5 7 6 9 7 10 9 11 10 2. 当前元素与前一元素求差(差值为1的表示:队中或队尾 差值!=1表 阅读全文
posted @ 2022-02-15 17:10 学而不思则罔! 阅读(260) 评论(0) 推荐(0) 编辑
摘要:1. 数据准备 -- 1. 数据准备 create table gulivideo_ori( videoId string comment '视频唯一 id(String)', -- 11 位字符串 uploader string comment '视频上传者(String)', -- 上传视频的用 阅读全文
posted @ 2022-02-15 11:38 学而不思则罔! 阅读(106) 评论(0) 推荐(0) 编辑
摘要:源码2 第四章 DDL 数据定义 1. 对数据库的操作 1. 创建数据库 2. 查询数据库 3. 切换数据库 4. 修改数据库 5. 删除数据库 1. 语法 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment 阅读全文
posted @ 2022-02-14 17:08 学而不思则罔! 阅读(93) 评论(0) 推荐(1) 编辑
摘要:源码 第二章 Hive 常见属性配置 1. hive.log 默认存储路径 /tmp/root/hive.log (当前登入用户) 2. 修改 hive.log 存储目录 1. 将 hive/conf/hive-log4j2.properties.template 修改为 hive-log4j2.p 阅读全文
posted @ 2022-02-14 16:45 学而不思则罔! 阅读(111) 评论(0) 推荐(0) 编辑
摘要:源码 第一章 Hive 基本概念 1. 什么是Hive 1. 由 Facebook 开源 用于解决 海量 结构化 日志的 数据统计 工具 2. 基于 Hadoop的 数据仓库工具 , 可以将 结构化的数据文件(HDFS) 映射成一张表 并提供 类sql的 操作 2. Hive 的本质 1. 将 Hq 阅读全文
posted @ 2022-02-14 16:42 学而不思则罔! 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1. 基本类型 tinyint smalint int bigint boolean float double decimal string : 相当于varchar,可变字符串,不用指定长度,理论上可以存储2GB字符数 timestamp binary 2. 集合数据类型 struct map a 阅读全文
posted @ 2022-02-13 19:32 学而不思则罔! 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1. 严格模式 1. 什么是严格模式 hive对sql语法的一些安全性的限制2. 分区表查询时必须指定分区 -- 开启限制(默认为 false) set hive.strict.checks.no.partition.filter=true; -- 测试 -- 测试 create table `pa 阅读全文
posted @ 2022-02-13 18:50 学而不思则罔! 阅读(1229) 评论(0) 推荐(0) 编辑
摘要:1. 任务并行设置 说明 : hive会将sql 转化成DAG,阶段类型有 fetch阶段、MapReduce阶段、merge阶段、limit阶段 默认情况下,hive一次只会执行一个阶段,但某些阶段可以并行执行,完全相互依赖 参数设置: -- 开启任务并行执行 set hive.exec.para 阅读全文
posted @ 2022-02-13 18:49 学而不思则罔! 阅读(602) 评论(0) 推荐(0) 编辑
摘要:1. 调整reduce个数(方式1) -- 每个reduce处理的数据量(默认为256M) set hive.exec.reducers.bytes.per.reducer=256000000; -- 每个job允许最大的reduce个数 set hive.exec.reducers.max=100 阅读全文
posted @ 2022-02-13 12:52 学而不思则罔! 阅读(1711) 评论(0) 推荐(0) 编辑
摘要:1. 小文件合并位置 : 1. map输入端 对小文件合并 2. map输出端 对小文件合并 3. reduce输出端 对小文件合并2. map输入时,对小文件合并 参数设置 : -- CombineHiveInputFormat 按切片大小切分(多个小文件可归一个切片) -- 默认实现类 为Com 阅读全文
posted @ 2022-02-13 12:48 学而不思则罔! 阅读(1062) 评论(0) 推荐(0) 编辑
摘要:1. 合理设置Map数 1. MapTask任务数决定因素: 1. 文件个数 2. 文件大小 3. 集群设置的文件块大小 4. 指定的 切片大小 5. 处理文件的inputfor的实现类 2. 切片个数 = MapTask个数 1. 确定 InputFormat的实现类 hive中主要使用 : Hi 阅读全文
posted @ 2022-02-13 12:26 学而不思则罔! 阅读(1260) 评论(1) 推荐(0) 编辑
摘要:1. 列处理 : 说明 : 避免使用 select *,有分区时,要指定分区2. 行处理 : 关联原则 : 在关联操作时,能先where的尽量先where,减少数据集 3. hive底层优化策略-谓词下推(predicate pushdown) : 什么是谓词下推 ? 1. 将过滤表达式尽可能移动至 阅读全文
posted @ 2022-02-11 16:07 学而不思则罔! 阅读(565) 评论(0) 推荐(0) 编辑
摘要:1. 笛卡尔积 1. 触发笛卡尔积条件 1. join 时,没有on条件 或 on 条件无效 2. 为什么要尽量避免笛卡尔积? hive 只会使用一个reduce来完成笛卡尔积,当数据量过大时,容易内存不足 3. 如果必须使用笛卡尔积时,可以使用MapJoin,关联操作在Map端完成 4. 测试 - 阅读全文
posted @ 2022-02-11 11:07 学而不思则罔! 阅读(1183) 评论(0) 推荐(0) 编辑
摘要:1. count(distinct) 调优 说明 : count(distinct) 会启用一个 ReduceTask 来完成,当数据量巨大时,单个ReduceTask 无法完成 在对大量数据做 count(distinct)操作时, 可以使用 group by 后,再 count ,将任务拆分 示 阅读全文
posted @ 2022-02-11 11:02 学而不思则罔! 阅读(408) 评论(0) 推荐(0) 编辑
摘要:1. 对group by的调优 (开启map端聚合) 说明 : 默认情况下 Map阶段相同的key 会被发送到同一个reduce中去聚合 当某个key数据量过大时,就造成了数据倾斜 什么是map端聚合? 并不是所有聚合操作,都需要在reduce端聚合,可以在map端先将部分数据,进行聚合,最终数据在 阅读全文
posted @ 2022-02-11 10:59 学而不思则罔! 阅读(1719) 评论(0) 推荐(0) 编辑
摘要:1. hive 的三种join 1. reduceJoin 也叫 Common Join、Shuffle Join 2. MapJoin 3. Sort Merge Bucket Join(分桶表Join) 2. SMB(Sort Merge Bucket) Join 分桶表join 说明 : 大表 阅读全文
posted @ 2022-02-10 19:42 学而不思则罔! 阅读(2332) 评论(0) 推荐(0) 编辑
摘要:1. key空值过多导致 任务异常(数据倾斜)处理方案 1. 空值过滤 说明 : 1. 当key的空值过多时,相同的key会被分配到同一个reduce中处理,导致此reduceTask内存不足,而任务失败 处理 : 在不影响业务的情况下将 key为null的数据处理掉 2. 空值转换 说明 : 大表 阅读全文
posted @ 2022-02-10 19:35 学而不思则罔! 阅读(467) 评论(0) 推荐(0) 编辑
摘要:1.大小表join(MapJoin) 说明 : 当大表小表关联时,可以将小表读取到内存,在Map端进行数据关联 小表在左在右都会触发 Mapjoin2. 怎样判断大小表? 大表 > set hive.mapjoin.smalltable.filesize 小表 <= set hive.mapjoin 阅读全文
posted @ 2022-02-10 19:25 学而不思则罔! 阅读(1460) 评论(0) 推荐(0) 编辑
摘要:1. 本地模式 1. 什么是本地模式 hive 默认会将所有任务,提交到yarn上执行,由yarn负责整个job的调度与监控 当数据集非常小时(只有一个block,只存在一个datanode节点上),提交job的时间 将远大于 job运行的时间, 此时可以开启本地模式,将job在本地运行,不提交到y 阅读全文
posted @ 2022-02-10 12:32 学而不思则罔! 阅读(1440) 评论(0) 推荐(0) 编辑
摘要:1. 语法explain [extended | dependency | authorization] query2. 从执行计划中 可以获取那些信息? 1. Job任务的DAG(有向无环图) 2. 操作算子 示例 : Fetch Operator Select Operator Map Redu 阅读全文
posted @ 2022-02-10 12:22 学而不思则罔! 阅读(208) 评论(0) 推荐(0) 编辑
摘要:1. 结论 存储格式一般选择 : orc 和 parquet 压缩方式一般选择 : snappy(不可切片)、lzo(可切片) 注意: 当读取单个大文件时,要选择lzo方式 2. hive 支持的文件存储格式 行式存储 : textfile、sequencefile 列式存储 : orc、parqu 阅读全文
posted @ 2022-02-08 17:58 学而不思则罔! 阅读(847) 评论(0) 推荐(0) 编辑
摘要:--(1) 如何设置 开启Map输出阶段压缩 1. 开启hive 中间传输数据压缩功能set hive.exec.compress.intermediate=true;--2. 开启mr 中mapTask 输出结果压缩set mapreduce.map.output.compress=true;-- 阅读全文
posted @ 2022-02-07 19:29 学而不思则罔! 阅读(146) 评论(0) 推荐(0) 编辑
摘要:1. 01 Map输出设置压缩 案例 package ComMapOutPk { import java.lang import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.Path import org.apac 阅读全文
posted @ 2022-02-07 17:23 学而不思则罔! 阅读(38) 评论(0) 推荐(0) 编辑
摘要:1 阅读全文
posted @ 2022-02-07 16:05 学而不思则罔! 阅读(25) 评论(0) 推荐(0) 编辑
摘要:1 阅读全文
posted @ 2022-02-07 16:03 学而不思则罔! 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1 阅读全文
posted @ 2022-02-07 16:03 学而不思则罔! 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1 阅读全文
posted @ 2022-02-07 16:03 学而不思则罔! 阅读(24) 评论(0) 推荐(0) 编辑
摘要:案例1-- 考查 :开窗聚合函数、开窗分区累加(order by)、获取当前记录的前一条数据(lag)、根据row_number将数据划分x等分(ntile) --1. 数据准备 --1. 数据准备 -- business.txt jack,2017-01-01,10 tony,2017-01-02 阅读全文
posted @ 2022-02-07 14:38 学而不思则罔! 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1. 开窗函数的作用 说明 : 开窗函数就是 根据指定的开窗规则 为表的每条记录,标记状态,不会增加或者减少表的记录数 2. 语法 分析函数、聚合函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 注意 : over(par 阅读全文
posted @ 2022-02-07 07:09 学而不思则罔! 阅读(375) 评论(0) 推荐(0) 编辑
摘要:1. explode (遍历集合 UDTF函数) 说明 : 将hive 中array 数据遍历成多行, map 遍历成 多行、多列(key,value) 注意 : 1. udtf 只支持 select 子语句中有一个表达式 select explode(array) ✔️️ select id,ex 阅读全文
posted @ 2022-02-05 17:38 学而不思则罔! 阅读(476) 评论(0) 推荐(0) 编辑
摘要:1. concat 说明 : 将多个字符串 按照默认分隔符(空) ,拼接成一个字符串 示例 : select concat('gao','cun'); 结果 : gaocun2. concat_ws 说明 : 将多个字符串 或者array, 按照指定分隔符(第一个参数), 拼接成一个字符串 示例 : 阅读全文
posted @ 2022-02-05 16:36 学而不思则罔! 阅读(1540) 评论(0) 推荐(0) 编辑
摘要:1. 自定义函数的类型 名称 特点 示例 UDF (User-Defined-Function) 一进一出 示例 : like、rlike、if、upper UDAF (User-Defined-Aggregation-Function) 聚合函数,多进一出 示例 : max、min、count、a 阅读全文
posted @ 2022-02-03 11:02 学而不思则罔! 阅读(689) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示