
hive
文章平均质量分 77
之前喜欢自己做笔记,现在有时间就整理出来放这里
韩家小志
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hive--执行计划
来聊一聊执行计划,如果掌握了MapReduce,且开发者有一定的经验积累可以反推Compiler将SQL转换的MapReduce执行算法,并借助explain来比对你构思的执行计划和实际生成的执行计划是否存在差异,并思考差异的原因是啥,慢慢就能够对生成的算法以及算法执行路径图是否合理给出一个自己的评判,同时也能提升自己对SQL的掌控原创 2023-02-27 22:59:34 · 3726 阅读 · 0 评论 -
hive--Map local work exhausted memory
hive报错原创 2022-12-02 18:24:28 · 828 阅读 · 0 评论 -
hive/spark--left semi/anti join
文章目录简介特点图例简介LEFT SEMI JOIN (左半连接)是 IN/EXISTS 子查询的一种更高效的实现。只存在 left SEMI JOIN,不存在SEMI JOIN 和 right SEMI JOISemi Join,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO,提升执行效率。实现方法很简单:选取原创 2021-12-14 09:43:17 · 3710 阅读 · 0 评论 -
Hive--count(distinct)优化
前言使用count distinct计算两列联合去重时,若有任何一列为NULL,那么count计数时就会略过这一条。如:count(distinct a,b) 若a或者b中有一个是null,那么这一行就不会参与计数平台:hive、mysql都是如此idtoolsname1 hive a2 hive b3 hive NULL4 NULL m6 观察以下代码执行结果...原创 2021-09-30 22:07:25 · 4382 阅读 · 0 评论 -
Hive--如何控制权限
Hive如何控制权限前言准备创建角色删除角色授权撤销具体功能权限举个栗子:创建和删除角色角色的授权和撤销为角色分配具体的功能权限前言Hive从0.10版本(包含0.10版本)以后可以通过元数据来控制权限,Hive-0.10之前的版本对权限的控制主要是通过Linux的用户和用户组来控制,不能对Hive表的CREATE、SELECT、DROP等操作进行控制,当然Hive基于元数据来控制权限也不是安全的,目的就是为了防止用户不小心做了不该做的操作。项目中根据不同的项目组,不同的业务线,来划分不同的角色权限原创 2021-03-07 16:00:57 · 1546 阅读 · 1 评论 -
hive--ORC、Parquet等列式存储的优点
ORC、Parquet等列式存储的优点前言Parquet:ORC:前言ORC和Parquet都是高性能的存储方式,这两种存储格式总会带来存储和性能上的提升。Parquet:1)Parquet支持嵌套的数据模型,类似于Protocol Buffers,每一个数据模型的schema包含多个字段,每一个字段有三个属性:重复次数、数据类型和字段名,重复次数可以是以下三种:required(只出现1次),repeated(出现0次或多次),optional(出现0次或1次)。每一个字段的数据类型可以分原创 2021-03-07 16:00:14 · 3034 阅读 · 0 评论 -
Hive--一文了解Hive的优化(从底层梳理)
hive--优化总结SQL执行顺序这些关键字决定了什么对应怎么优化呢?首先,针对mr的input阶段第二,针对mr的map阶段第三,针对mr的shuffle阶段第四,针对mr的reduce阶段第五,针对mr的output阶段第六,针对全局配置优化压缩配置优化拉链表使用分桶并行操作索引小文件的处理数据倾斜参数调节SQL调节优化器SQL优化小表大表关联中表:大表关联大表总结ps:本段总结只是方便我的全局理解,如果哪里不合理欢迎指导对于一段sql,我们可以分析一下SQL执行顺序(7) SEL原创 2021-02-25 00:14:22 · 1892 阅读 · 0 评论 -
Hive--控制map和reduce的个数(为什么&什么场景设置&如何设置)
设置map和reduce的个数一、控制hive任务中的map数:如果超过128m就一定会被拆分吗?是不是map数越多越好?那么针对这种情况,如何合并小文件,减少map数?是不是保证每个map处理接近128m的文件块,就高枕无忧了?那么针对这种情况,如何适当增加map数?二、 控制hive任务的reduce数:什么情况下只有一个reduce?一、控制hive任务中的map数:通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有: input的文件总个数,input的文件大原创 2021-02-19 16:05:18 · 6102 阅读 · 0 评论 -
hive--查看hive版本
hive比较坑的一点就是没有类似hive -version的方便地查看版本的方法,我们只能自己去hive的安装目录里去看各个jar包的版本。方法:可以方便地定位到hive/lib目录下查看各个jar包的版本通常,hive-exec的那个jar包的版本就是hive的版本号locate */hive/lib/hive*jar...原创 2021-02-18 15:21:42 · 2927 阅读 · 0 评论 -
Hive--修改表/列信息(名称、注释、顺序)
修改表/列信息Alter Table 语法概览Alter Table 语法举例重命名表增加列删除列改变列名/类型/位置/注释Alter Table 语法概览语法ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])ALTER TABLE name DROP [COLUMN] column_nameALTER TABLE name CHANGE column_name ne原创 2020-12-21 10:36:18 · 2478 阅读 · 1 评论 -
Hive--导入数据的6种方式
总结:本地文件导入到Hive表–load data local inpath '路径' into/overwrite table 表名HDFS文件导入到Hive表load data inpath 'hdfs路径' into/overwrite table 表名Hive表导入到Hive表(select 或者insert )创建表的过程中从其他表导入create table ... as select xxx from 其他表从其他表导入insert into/ov原创 2020-12-09 08:23:05 · 3472 阅读 · 1 评论 -
Hive--数据抽样的常用三种方法(随机/数据块/分桶)
1、随机抽样(rand()函数)方法一:order by与rand函数结合limit关键字限制抽样返回的数据案例:order by 全局排序耗时长select * from app.table_name order by rand() limit 100;方法二:distribute和sort与rand函数结合limit关键字限制抽样返回的数据案例:rand函数前的distribute和sort关键字可以保证数据在mapper和reducer阶段是随机分布的select * fro原创 2020-11-26 11:23:03 · 6262 阅读 · 1 评论 -
datax--分库分表mysql同步数据到hive中
一、背景及问题分表100张数据量8.6亿需要使用datax从mysql同步至hdfs(hive)之前是100个任务写入ods层的一张表二、解决原创 2020-11-25 21:01:00 · 6009 阅读 · 3 评论 -
Hive--字段中包含列的分割符
问题列的分隔符不固定,一行数据中出现了多种列的分隔符【几乎很少,半结构化数据,跟数据生成格式有关】name-age,sex phone address列的分隔符固定,但是字段中包含了列的分割符【这种情况会比较多】2019-08-28 00:03:00 tom解决方案使用正则加载数据,将非结构化或者半结构化的数据,经过ETL转为结构化数据实现案例创建数据vim /export/datas/regex.txt2019-08-28 00:03:00 tom2019-08原创 2020-11-23 14:12:06 · 1287 阅读 · 0 评论 -
Hive--排序
排序order by:全局排序select empno,ename,salary,deptno from tb_emp order by salary desc;底层是MapReduce,如果想实现全局排序,能不能有多个reduce?不能。如果使用了order,底层的MapReduce只会有一个Reducesort by:局部排序如果有多个Reduce的情况下,每个Reduce内部按照什么进行排序。先设置多个Reduceset hive.exec.reducers.byte原创 2020-11-23 09:40:59 · 106 阅读 · 0 评论 -
Hive--join
join分类[inner] join:内连接,两边都有,结果才有select empno,ename,a.deptno,b.deptno,b.dname from tb_emp a join tb_dept b on a.deptno = b.deptno;left [outer] join :左外连接,左表有,结果就有select empno,ename,a.deptno,b.deptno,b.dname from tb_emp a left join tb_dept b on a.原创 2020-11-23 09:36:29 · 984 阅读 · 0 评论 -
Hive--复杂数据类型array&map&struct
网络文档 [https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types)总结:arrayCOLLECTION ITEMS TERMINATED BY ‘,’ 指定数组中每个元素的分割符size(列) 该array多少元素列[下标]原创 2020-11-23 09:30:57 · 1176 阅读 · 0 评论 -
Hive--DDL与DML与DQL
0、Hive官网学习语法https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation1、DDL:数据定义语言https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL1.1数据库管理列举show databases;创建CREATE DATABASE [IF NOT EXISTS] database_name [LO原创 2020-11-21 20:09:34 · 473 阅读 · 0 评论 -
Hive--表的分类
0、表的创建语句CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col1 typ1,col2 type2,col3 type3,……colN typeN)[PARTITIONED BY (col_name data_type] --分区表[CLUSTERED BY (col_name, col_name, ...) --分桶表[ROW FORMAT row_format]原创 2020-11-21 15:29:08 · 711 阅读 · 0 评论 -
Hive--元数据--探查
1、元数据功能保存了Hive中所有关键性的数据存储了所有数据库、表、所有字段、分隔符等信息存储了所有表与HDFS文件的映射的信息2、元数据存储存储位置第一种:默认的存储位置:Hive自带的Derby数据库存在问题:由于derby数据库以文件的形式存在,不能启动多个实例,真正在工作中不用derby来存储元数据第二种:企业中实际的开发环境,都是将Hive元数据存储在关系型数据库中:常用MySQL3、实现:将Hive元数据存储在MySQLstep1:安装MySQLstep2:修改H原创 2020-11-21 13:11:28 · 2392 阅读 · 1 评论 -
Hive--元数据--引入
回顾Hive的功能:功能一:将HDFS映射成Hive表的数据tips:【在工作中主要使用的功能】应用:现在在工作中使用Hive不做分析计算,主要做数据仓库的存储功能二:将SQL解析成MapReduce/Tez/Spark程序tips:【这个计算分析功能逐渐被替代了】在更高的版本,MR在未来会被Hive取消Hive不仅仅支持将SQL转为MRMR:默认会将SQL转换为MapReduceTezSpark这个功能在实际工作中,逐渐被替换成别的工具来做分析处理,例如:Presto原创 2020-11-20 18:07:43 · 246 阅读 · 0 评论 -
Hive--介绍及功能
1、介绍痛点:数据分析师不懂Java开发开发人员不懂业务tips:最早大数据领域只有Hadoop这个分布式存储和计算的组件用于大数据的处理:数据分析FaceBook公司在使用Hadoop实现数据分析的时候,发现有个毛病:会做分析的人如业务人员、数据分析师,会用SQL;会用Hadoop实现分布式开发是开发人员解决:方案一:让开发人员教业务写代码,成本比较高方案二:让开发人员对Hadoop做一层封装,开发一个新的程序,封装以后新的程序提供SQL接口,在新的程序中用SQL进行开发,这个程序底原创 2020-11-20 16:57:02 · 824 阅读 · 0 评论 -
Hive--图解架构
0、整体概览1、客户端功能:负责与用户进行交互用户在客户端上开发SQL客户端将SQL语句提交给Hive的服务来解析并执行客户端负责显示服务端处理好的结果2、服务端功能:负责接受客户端的请求,将客户端提交的SQL进行解析,主要为两部分功能:计算:封装成MapReduce程序,提交给YARN运行存储:实现表的定义、与HDFS文件的关联连接器:负责构建与客户端 的连接管理解析器:负责 解析整个SQL语句,也会做验证,表是否存在,语法是否正确== 解析器最终得到一个解析以后的语法树原创 2020-11-20 16:32:17 · 391 阅读 · 0 评论 -
Hive--启动及后台启动脚本
hive启动步骤:1.先启动Metastore服务(先后顺序不能乱)cd /export/servers/hive-1.1.0-cdh5.14.0/bin/hive --service metastore检查是否成功:netstat -atunlp | grep 90832.然后启动Hive的服务端:hiveserver2cd /export/servers/hive-1.1.0-cdh5.14.0/bin/hiveserver2检查是否成功:netstat -atunlp | grep原创 2020-11-20 15:55:53 · 3117 阅读 · 0 评论