![](https://img-blog.csdnimg.cn/20210719103631260.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hive基础
文章平均质量分 51
Hive基础
家道消乏
这个作者很懒,什么都没留下…
展开
-
Hive:调优
Hive 优化 核心思想:把 Hive SQL 当做 Mapreduce 程序去优化 以下 SQL 不会转为 Mapreduce 来执行 select 仅查询本表字段 where 仅对本表字段做条件过滤 Explain 显示执行计划 explain extended SQL语句 Hive 抓取策略 Hive 中对某些情况的查询不需要使用 MapReduce 计算 抓取策略 Set hive.fetch.task.conversion=...原创 2021-08-24 13:57:05 · 160 阅读 · 0 评论 -
Hive:权限管理
Storage Based Authorization in the Metastore Server 基于存储的授权,可以对 Metastore 中的元数据进行保护,但是没有提供更加细粒度的访问控制(如:列级别、行级别) SQL Standards Based Authorization in HiveServer2 基于 SQL 标准的 Hive 授权,完全兼容 SQL 的授权模型,推荐使用该模式 Default Hive Authorization(Legacy Mode原创 2021-08-09 10:14:50 · 1136 阅读 · 0 评论 -
Hive:Join
数据表Join 用法inner join 内连接 两表必须有匹配的记录 select a.id,a.name,a.age,a.gender,b.likes,b.address from psn as a inner join psn2 as b on (a.id=b.id);left outer join 左外连接 左表显示全,不管右表是否有对应记录(有就正常显示,没有就是 Null) select a.id,a.name,a.age,a.gender,b.li..原创 2021-08-08 10:38:00 · 138 阅读 · 0 评论 -
Hive:索引
目的:优化查询以及检索性能创建索引create index index_psn on table psn(name)as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuildin table index_psn_table;create index index2_psn on table psn(name)as 'org.apache.hadoop.hive.ql.in.原创 2021-07-25 15:19:36 · 151 阅读 · 0 评论 -
Hive:视图
与关系型数据库中的普通视图一样,hive 也支持视图 特点 不支持物化视图 只能查询,不能做加载数据操作 视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询 view 定义中若包含了 order by / limit 语句,当查询视图时也进行 order by / limit 语句操作,view 当中定义的优先级更高 view 支持迭代视图 语法create view 视图表名 as SQL语句select * from 视图表名drop view 视图表名原创 2021-07-25 14:19:36 · 579 阅读 · 0 评论 -
Hive:Lateral 视图、SQL执行计划
视图 用于和 UDTF 函数 (explode、split)结合来使用 首先通过 UDTF 函数拆分成多行,再将多行结果组合成一个支持别名的虚拟表 主要解决在 select 使用 UDTF 做查询过程中,查询只能包含单个 UDTF,不能包含其它字段、以及多个 UDTF 的问题 语法 lateral view explode(字段) 临时表名 as 别名 例 1 数据源 处理后 例 2 执行计算 explain extended ..原创 2021-07-25 12:52:57 · 232 阅读 · 0 评论 -
Hive:分桶
分桶 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储 对于 hive 中每一个表,分区都可以进一步进行分桶 由:列的哈希值 /(除以)桶的个数 决定每条数据划分在哪个桶中 与分区的区别 分区:多级目录、每个目录存储固定特征的文件 场景 数据抽样 (sampling) 开启支持分桶 set hive.enforce.bucketing=true 1.X 默认是 false 2.x 之后没有,但是默认是支持的 MR 运行时会根据...原创 2021-07-24 09:51:14 · 373 阅读 · 0 评论 -
Hive:动态分区
动态分区注 分区列中文报错 一般情况不建议使用中文 若公司的 hive 并未修改编码,你若不仔细查看一番,直接使用中文,后果自负 执意使用中文分区列时 配置 mysql 的编码 配置 mysql 中的 hive 库的相关编码 导入数据时 load data 无效 导入数据前需要配置 set hive.exec.dynamic.partition.mode = nonstrice 建议先将数据插入一张表里,然后再从这个表导入分区表 ..原创 2021-07-23 14:14:14 · 249 阅读 · 0 评论 -
Hive:参数使用
以表头为例查询无表头(默认)方法一:(当前会话生效)方法二:(当前会话生效)方法三:创建这个文件,添加配置,即可(当前用户生效)注:.hivehistory 文件:记录 hive 操作命令历史方法四:配置 hive-site.xml (全局配置)不建议使用某些参数只使用一次、或只限自己适用,若还设置全局,会影响其他人在 hive 输入 set 会显示出当前会话所有参数(参数太多无法全部显示,有必要,则导入文本 ).原创 2021-07-23 10:26:39 · 61 阅读 · 0 评论 -
Hive:运行方式
命令行方式 Cli:控制台 可在 hive 中可执行 hdfs 命令(从 dfs 开始写) 比较 hive中:由于已经产生连接,可直接执行 普通情况:hdfs dfs ..... 需要先生产连接,再执行,速度显慢 可在 hive 中可执行 linux 系统命令(先输入叹号) 只适合部分命令 变量(在进入 hive 时直接设置) -d 设置变量 hive -d 变量名=值 之后使用时 ${变量名} (大括号) -S...原创 2021-07-23 10:27:58 · 160 阅读 · 0 评论 -
Hive:(永久|临时)自定义函数
写的不到位的地方,欢迎评论指出不足之处代码package com.my.hive.demo;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;public class AddString extends UDF { public Text evaluate(final Text t) { if (t == null) return ne.原创 2021-07-21 19:50:31 · 452 阅读 · 0 评论 -
Hive:Idea 开发 Client
写的不到位的地方,欢迎评论指出不足之处数据192.168.1.4 - - [20/Jul/2021:9:20:30 +0800] "GET /1.png HTTP/1.1" 304 -192.168.1.4 - - [20/Jul/2021:9:20:30 +0800] "GET /1.PNG HTTP/1.1" 304 -192.168.1.4 - - [20/Jul/2021:9:20:31 +0800] "GET /1.jpg HTTP/1.1" 304 -192.168.1.4 .原创 2021-07-21 13:13:43 · 79 阅读 · 0 评论 -
Hive:hiveserver2 的配置使用
写的不到位的地方,欢迎评论指出不足之处本人虚拟机环境部署 one two three four NameNode yes yes DataNode yes yes yes ZookepperFailoverController yes yes Zookepper yes yes yes NodeManage .原创 2021-07-21 12:40:06 · 452 阅读 · 0 评论 -
Hive:正则表达式
写的不到位的地方,欢迎评论指出不足之处SerdeSerializer and Deserializer :用于序列化和反序列化 构建在数据存储和执行引擎之间,对两者实现解耦 Hive 通过 row format delimited 以及 serde 进行内容的读写实例数据192.168.1.4 - - [20/Jul/2021:9:20:30 +0800] "GET /1.png HTTP/1.1" 304 -192.168.1.4 - - [20/Jul/2021:9:20:.原创 2021-07-20 14:58:45 · 103 阅读 · 0 评论 -
Hive:一张表数据分别向多个张表插入数据
创建(有)数据表,并插入数据创建多张空表一张表的数据分开向多张表插入一张表的数据向另一张表插入原创 2021-07-19 16:18:35 · 824 阅读 · 0 评论 -
Hive:创建分区表并插入数据
Hive 分区 partition 必须在表定义时,指定对应的 partition 字段create table day table(id int, content string) partitioned by (dt string);单分区建表语句 单分区表、按天分区、在表结构中存在 id,content,dt 三列,dt 为文件夹区分 create table dayhour_table(id int, content string) partitioned by (dt strin原创 2021-07-19 16:01:51 · 7667 阅读 · 0 评论 -
Hive:创建(内|外)表并插入数据
1、创建数据库create database test;2、创建内部表(设置分隔符)fields 字段分隔符,collection 数组连接符,map keys的分隔符create table psn(id int,name string,likes array<string>,address map<string,string>)row format delimitedfields terminated by ','collection i原创 2021-07-19 15:03:22 · 2662 阅读 · 0 评论 -
Hive:远程通过MetaStoreServer访问数据库
本人虚拟机环境部署 one two three four NameNode yes yes DataNode yes yes yes ZookepperFailoverController yes yes Zookepper yes yes yes NodeManage yes yes yes原创 2021-07-19 14:14:30 · 275 阅读 · 0 评论 -
Hive:远程访问(元数据)数据库
写的不到位的地方,欢迎评论指出不足之处本人虚拟机环境部署 one two three four NameNode yes yes DataNode yes yes yes ZookepperFailoverController yes yes Zookepper yes yes yes NodeManage .原创 2021-07-19 13:22:54 · 444 阅读 · 0 评论 -
Hive:初始
写的不到位的地方,欢迎评论指出不足之处产生 非 JAVA 编程者对 HDFS 的数据做 mapreduce 的操作 简介 数据仓库 面向业务:查询数据时,相对数据库的速度可以慢,但还是越快越好 可以收纳多种数据源(不同的数据库) 数据不可修改 解释器、编译器、优化器 用户接口主要有三个:CLI、Client、WUI 其中最常用的是 cli cli 启动的时候,会同时启动一个 Hive 副本 Client 是 Hive 的客户端 用户连接.原创 2021-07-19 10:53:10 · 58 阅读 · 0 评论