
Hive
文章平均质量分 69
SunnyRivers
在通信、游戏、互联网、新能源等不同行业从事过多年大数据开发相关工作,想通过博客和大家一起分享大数据技术带来的经验和乐趣。
展开
-
通俗易懂理解Hive四种排序
Hive的四种排序包括Sort By、Order By、Distribute By和Cluster By。有关这四种排序的区别,在大数据面试中可能会经常被问到,在我们很多人的实际应用中可能最常用的就是全局排序order by,因此对于其他几个排序理解并不准确,接下来我用简单的案例尽量描述清楚。order by 是全局排序,可能性能会比较差;sort by分区内有序,往往配合distribute by来确定该分区都有那些数据;原创 2024-09-05 10:17:12 · 1269 阅读 · 0 评论 -
删除和清空Hive外部表数据
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);原创 2024-02-07 10:29:31 · 2497 阅读 · 0 评论 -
建表时如何合理选择字段类型
严谨型严格调研每个字段可能的大小,然后根据不同字段类型的限制,进行选择,这一类人在创建关系型数据表的时候是没有问题的。图自己省事型把所有字段都设置为String,这样他可以一股脑的把所有数据导入进来。这种人在用关系型数据库(如mysql)的时候,会被骂死,在大数据(如hive)中,可能ODS层这么搞,原则上是可行,毕竟还有建模的时候可以处理这些数据类型,但是建模的人也会抱怨。根据不同场景进行甄别型(1)大数据领域。原创 2023-11-06 13:46:17 · 458 阅读 · 0 评论 -
Hive中NULL和''
前言之前由于对Hive底层的对于NULL和’'了解的不透彻,使用的时候出现了一些问题,今天闲来无事就整理一下简单的测试案例测试数据:1,zs,232,NULL,243,,4, ww,255,zl ,266,\N,277, \N,\N8,姓名,289, ,年龄10, , \N创建Hive表:create table student(id int,n...原创 2020-01-18 19:31:23 · 1533 阅读 · 0 评论 -
Hive压缩存储性能测试
前言前一篇根据官网对Hive表如何使用压缩格式的数据进行了阐述,不过从Hive编程指南中我们可以看到如下一种建议:当然Hive编程指南的中Hive的版本是非常低的,低于0.13版本,因此创建压缩表的方式和前一篇略有不同,不过我们重点不在这,而是,同时使用入ORC、Parquet这种格式,并且采用Gzip、Snappy压缩,这样的性能究竟如何呢?创建表TextFile格式:CREATE ...原创 2020-01-10 19:44:10 · 604 阅读 · 0 评论 -
Hive压缩存储(以Parquet为例)
前言前面说了,HDFS上的数据在生产环境中一定是以压缩格式存储的,那么在Hive中如何使勇Parquet格式存储数据呢?测试数据在本地服务器上面vim test.txt1,zs2,ls3,ww4,zl由于我们一般接到的数据都是gzip压缩的文件,这里就将文件压缩为gzipgzip -c test.txt > .test.gz错误的方式创建parquet的hive表...原创 2020-01-09 10:22:46 · 2074 阅读 · 2 评论 -
Hive Cli 和 Beeline
前言你们怎么直接用hive命令进hive呢?为什么不使用beeline,另一个部门的同事,看到我直接输入hive 回车进入hive,感到很困惑。我说有什么区别吗?我一直都用的cli,从未用过beeline。这个同事说区别是:cli 服务器是HiveServer,而beeline服务器是HiveServer2。HiveServer不能处理多个客户端的并发请求,所以产生了HiveServer2。...原创 2019-12-13 15:50:20 · 2620 阅读 · 6 评论 -
Hive锁表的问题
前言旁边的实习生一副很无奈的表情:集群又出现问题了,hive一直卡住不能用。我看了一下他执行的hivesql,发现他想查询我正在往Hive中导数据的表,这个时候Hive由于锁的问题,是无法查询的,那么数据库的锁究竟是什么东东呢?数据库锁详情参考锁主要是为了保证数据的完整性和一致性Hive中的锁详细请看官网hive存在两种锁,共享锁 Shared (S)和互斥锁 Exclusive (...原创 2019-12-12 14:46:08 · 4785 阅读 · 0 评论 -
shell脚本变量接收hive -e 返回值 “WARN:xxx...”
前言直接上代码:max_date=$(hive -e "select max(date) from table")echo $max_date本来就只是想去到日期的最大值20191121,可谁知道输出的结果却是:20191121 WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release(...原创 2019-11-21 15:05:12 · 1338 阅读 · 0 评论 -
案例
简化需求一张hive表,有三个字段id,score,date,分别代表用户,信用得分,日期。格式如下:1,50,2019092,60,2019091,30,2019102,62,201910每个月根据用户的消费情况得出其信用得分,但是有个前提是,本月的得分不能低于上月需求分析也就是计算出本月得分后和上个月的得分进行比较,当本月得分小于上个月得分,则用上个月得分替代。可怎么实现需求...原创 2019-10-14 16:41:53 · 221 阅读 · 0 评论 -
Hive vs HBase (配合使用才是最佳方案)
前言Hive是什么数据仓库,用来分析HDFS数据Hive的作用用SQL访问HDFS数据HBase是什么NoSQL数据库HBase作用随机访问HDFS数据原创 2019-09-27 10:36:22 · 3442 阅读 · 0 评论 -
两个正数相乘为什么结果是负数
前言说来实在惭愧,用spark处理hive表中的数据时,出现了两个正数相乘最后结果显示为负数后我的第一反应竟然有点懵逼,充分说明了自己在使用数据时,对Hive表中的字段类型没有进行充分的了解,当时,第二反应才想起是数据类型导致的数据超出范围了,这个还得归结在当时创建Hive表的时候,没有充分对表中每个字段要存储的数据类型进行充分调查Java基本数据类型及范围分类数据类型字节取值...原创 2019-09-19 14:16:04 · 6820 阅读 · 0 评论 -
Hive去重最佳方法
需求将下表中id去重,并把去重后所有字段输出说道去重相信大部分人脑海中第一反应是:distinct的确如此,distinct非常适合对于单个字段进行去重的操作,但是对于上面的需求貌似不好处理第二反应是:group by如果是Mysql操作当然没问题:SELECT id,month,label FROM t4 GROUP BY id;结果:但是Hive做同样的操作就会报...原创 2019-05-13 20:56:59 · 9409 阅读 · 5 评论 -
Hive简介
1.什么是HiveApache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已存储的数据上。 提供命令行工具和JDBC驱动程序,用于将用户连接到Hive。2.为什么会引入Hive非java编程者对hdfs的数据进行MapReduce操作3.Hive在Hadoop生态系统中有什么功能?(1)可通过SQL轻松访问数据的工具,从而实现数据仓库任务...原创 2018-05-10 08:39:57 · 319 阅读 · 0 评论 -
Linux系统下安装Mysql数据库
大概就下面几个步骤:1.挂载磁盘mount /dev/cdrom /mnt说明已经挂载了2.安装mysqlyum install mysql-server -y3.启动mysql服务service mysqld start4.验证是否安装成功[root@node01 ~]# mysqlWelcome to the MySQL monito...原创 2018-04-29 16:23:16 · 332 阅读 · 0 评论 -
Hive单用户模式搭建
单用户模式是通过网络连接到一个数据库中,是最经常使用到的模式。使用hive的前提:(1)启动hadoop集群(2)启动mysql服务节点规划:hadoop01为mysql存放元数据hadoop02搭建hive单用户模式搭建步骤:1.上传好tar包,后解压:tar -zxvf apache-hive-1.2.1-bin.tar.gz...原创 2018-04-29 16:33:44 · 928 阅读 · 0 评论 -
Hive多用户模式搭建
多用户模式也称远程服务模式,用户非java客户端访问元数据库,在服务端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。使用hive多用户模式前提:(1)启动hadoop集群(2)启动mysql服务节点规划:hadoop01作为mysql服务,用来存放元数据信息hadoop03作为hive服务端hadoop04作为hive客户端搭建步骤:...原创 2018-04-29 16:42:00 · 1660 阅读 · 0 评论 -
索引、分区和分桶的区别
一、索引简介Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同,比如,Hive不支持主键或者外键。Hive索引可以建立在表中的某些列上,以提升一些操作的效率,例如减少MapReduce任务中需要读取的数据块的数量。 为什么要创建索引?Hive的索引目的是提高Hive表指定列的查询速度。没有索引时,类似'WHERE tab1.col1 = 10' 的查询,Hive会加载整张表或分区,...转载 2018-05-21 22:05:22 · 5014 阅读 · 0 评论 -
Hive内部表和外部表
hive创建内部表hive> CREATE TABLE hT1(id INT,name STRING,hobby ARRAY<STRING>,address MAP<STRING,STRING>) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > COLLECTION ITEMS T...原创 2018-08-04 17:31:49 · 4188 阅读 · 0 评论 -
Hive分区和分桶
Hive把表组织成分区(partition)。这是一种根据分区列(partition column,如日期)的值对表进行粗略的划分机制。使用分区可以加快数据分片(slice)的查询速度。表或分区可以进一步划分为桶(bucket)。它会为数据提供额外的结构以获取更高效的查询处理。例如,通过根据用户ID来划分桶,我们可以在所有用户集合的随机样本上快速计算基于用户的查询。分桶适用场景:数据抽...原创 2018-08-06 13:41:59 · 2055 阅读 · 0 评论 -
Hive开窗函数
转载转载 2019-02-17 16:14:13 · 799 阅读 · 0 评论 -
Hive导入和导出数据
Hive导入数据(1)从本地文件导入load data local inpath 'test.txt' into table test;(2)从HDFS导入load data inpath '/data/test.txt' into table test;(3)从Hive表导入insert into table test partition (date) select id, n...原创 2019-04-28 21:24:10 · 974 阅读 · 1 评论 -
Hive详解
Hive这个框架在Hadoop的生态体系结构中占有及其重要的地位,在实际的业务当中用的也非常多,可以说Hadoop之所以这么流行在很大程度上是因为Hive的存在。那么Hive究竟是什么,为什么在Hadoop家族中占有这么重要的地位,本篇文章将围绕Hive的体系结构(架构)、Hive的操作、Hive与Hbase的区别等对Hive进行全方面的阐述。 在此之前,先给大家介绍一个业务场景,让大家感受一下为...转载 2018-03-18 19:51:23 · 642 阅读 · 0 评论