hive
daladalabao
把借口减少一半,把围绕目标的行动增加一倍。付出就会有收获,或大或小,或迟或早
展开
-
Hive数据倾斜解决办法
什么是数据倾斜任务进度长时间维持>99%,且任务未完成的情况什么原因某个reduce的输入量 >> 其他reduce数据的输入量解决办法JOIN的情况下大表join小表:小表在前大表在后但是新版Hive已经对此进行了优化,所以在前在后差距不大大表join大表:空Key解决:如果是异常数据使用where过滤,不是异常数据就转换key值可以使用随机赋值,这样可以均匀的分布在reducer上尽量使用MapJoin把小表全部加载到内存在map端执行,避免reducer处理Map原创 2022-02-28 12:14:09 · 1301 阅读 · 0 评论 -
MapJoin工作机制
如果不指定MapJoin或者不符合mapJoin的条件,那么HIve解析器会将Join操作转换成Common Join,也就是说在reduce阶完成Join容易发生数据倾斜。mapJoin工作机制通过mapReduce Local Task,将小表读入到内存中生成HashTableFiles 上传到Distributed Cache中,对HashTableFiles进行压缩MapReduce Job在Map阶段,每个Mapper从Dristributed Cache 读取HashTableFiles原创 2022-02-28 11:25:12 · 1747 阅读 · 0 评论 -
复习Hive之窗口函数
分析函数over():指定数据窗口大小current now:当前行preceding:前n行following: 后n行lag(col, n): 往前第n行数据lead(col,n):往后第n行数据分析函数要和窗口函数配合使用常用排序函数rank: 排序相同时会重复,总数不会改变dense rank():排序相同时会重复,总数会减少row_number():会根据顺序计算select name, subject, score,rank() over(partiti.原创 2022-02-22 18:40:48 · 968 阅读 · 0 评论 -
复习Hive之行转列以及列转行
行转列根据字面意思就是多行转一列连接函数concat select concat('hello','-',''world);concat_ws select concat_ws('-','hello','world');collect_set select collect_set(grade) from stu;只接受基本数据类型,进行一个去重汇总的操作并产生Array类型的字段例题合并字段分组查询按需求查询列转行字面意思多列转一行—一行转多行函数原创 2022-02-22 18:17:51 · 687 阅读 · 0 评论 -
复习Hive之分桶
这个时候要先知道分区和分桶的区别- 分区分的是数据的存储路径- 分桶分的是数据文件关键字:clustered by好处:方便抽样查询创建create table xxx(id int,name string) clustered by(id) into 4 buckets row format delimited fields terminated by '\t';导入数据:通过子查询的方式导入insert into table stu_bucket select id,name原创 2022-02-21 18:15:24 · 355 阅读 · 0 评论 -
复习Hive之排序
asc:升序(默认升序)desc:降序全局排序(order by)只有一个reducerselect id,name from table_name order by id asc;局部排序(sort by)在每个Reducer内部进行排序,全局并不是有序的需要设置mapReduce的数量set mapreduce.job.reduce=3;select id,name from table_name sort by id asc;分区排序(distribute by + sort b原创 2022-02-21 17:45:30 · 160 阅读 · 0 评论 -
Hive加载数据的方式
方式一1. 在hdfs上新建一个目录:dfs -mkdir /user/hive/warehouse/pgdb.db/dept_partition/year=2018;2. 上传文件:dfs -put /home/hduser/software/hive_1.2.1/hive_data/dept.txt /user/hive/warehouse/pgdb.db/dept_partition/year=2018; 这个时候通过hive客户端查询不到数据3. 执行修复命令: msck table de原创 2022-02-19 20:46:33 · 1043 阅读 · 0 评论 -
Hive分区表
*本片只是为了唤醒我的记忆,如果想看运行结果请参考hive的分区表概念以及修改操作分区表是什么Hive的分区表就是HDFS上的一个独立的文件夹,这个文件夹下是这个分区所有的数据。为什么要使用分区表HIve的分区就是一个分目录,在查询的时候使用WHERE自居选择需要查询的分区,查询效率会提高很多。分区表的基本操作创建分区表create table table_name(deptno int, dname string, loc string) partitioned by (month St原创 2022-02-18 13:12:35 · 392 阅读 · 0 评论 -
复习Hive之基本概念
Hive是什么hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据映射成为一张表,提供类SQL的查询本质是转化成mapReduce程序为什么使用Hive简单容易上手对实时性要求不高的时候使用适合处理大数据可以自定义函数架构由上图可以看出一共由5个部分组成,Mapreduce和HDFS可以归属于HadoopClientMeta Store:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等Driver原创 2022-02-17 10:30:57 · 674 阅读 · 0 评论 -
hive的分区表概念以及修改操作
一、 静态分区单个分区 a. 创建分区表 : `create table par_tab(name string,nation string) partitioned by(gender string) row format delimited fields terminated by ',';` b. 加载数据:`load data local inpath '/home/hduser/software/hive_1.2.1/hive_data/test1.txt' into table原创 2021-04-06 20:05:51 · 989 阅读 · 0 评论 -
hive的内部表和外部表
一、 内部表(管理表)hive全程管理 表和数据 的生命周期:当删除一个管理表时,hive也会删除这个表中的数据,管理表的数据,元数据以及存储位置创建表时不特别指定就是内部表hive默认情况会将表的数据存储在/user/hive/warehouse的子目录下二、 外部表为啥要用:不适合和其他工具共享数据hive之管理数据,不管理元数据:删除表的时候不会删除表的数据,描述表的元数据信息会被删掉创建外部表:create external table 表名 (id int,name strin原创 2021-04-06 19:44:35 · 632 阅读 · 0 评论 -
HIve元数据配置到mysql
将驱动类拷贝到/home/hduser/software 下 (直接拉就行)解压:tar -xzvf mysql-connector-java-5.1.27.tar.gz进到解压之后的文件目录,将mysql-connector-java-5.1.27-bin.jar复制到hive的lib目录下 命令:cp mysql-connector-java-5.1.27-bin.jar /home/hduser/software/hive_1.2.1/lib在hive的conf文件夹下创建hi..原创 2021-03-31 19:32:45 · 133 阅读 · 0 评论 -
linux环境下安装mysql
▶\blacktriangleright▶ 步骤sudo rpm -qa|grep mysql : 在linxu环境在查看是否有mysql安装包sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64 : 删除安装包将mysql安装包上传到Linux系统中tar -xzvf mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz : 解压rm -fr mysql-5.6.23-linux-glibc2.5-x86_64.t原创 2021-03-31 19:27:37 · 63 阅读 · 0 评论