hive
文章平均质量分 57
houzhizhen
专注大数据处理和分布式计算。
展开
-
hive metatool 使用说明
metatool 使用说明。原创 2024-04-07 11:52:08 · 310 阅读 · 0 评论 -
Hive SchemaTool 命令详解
Hive schematool 是 hive 自带的管理 schema 的相关工具。原创 2024-04-07 11:30:52 · 1127 阅读 · 1 评论 -
Hive 严格模式设置
Hive 在早期使用参数来决定是否执行严格模式, 其值为 strict 或者 nostrict. 当其值为strict时,执行严格模式,如从分区表查询时,过滤条件必须有分区字段。在 Hive 3.1.3 中,因为 hive.mapred.mode 比较粗暴,为了能更好的在不同地方是否严格模式,在不同的地方用各自的参数。为了使用不同的参数,hive.mapred.mode 已经被废弃,不能设置,如果设置了,则以 hive.mapred.mode 值为准,新的参数不生效。原创 2024-02-25 11:59:46 · 1040 阅读 · 0 评论 -
HiveServer2 常见异常和处理方法
HiveServer2 常见的3种异常和处理方案原创 2023-11-14 16:03:15 · 1570 阅读 · 0 评论 -
hive anti join 的几种写法
注意 left join 中 b.c1 is null 不能谓词下推。我们要在t_a 中出现,而不在 t_b中出现的记录。t_a 表的记录如下。t_b 表的记录如下。原创 2023-09-05 15:45:27 · 779 阅读 · 0 评论 -
数据库常见的物理优化算法
从 R 的block中依次读取记录,在 S 中查找是否有匹配记录,如果匹配,计算关联之后的记录,并拷贝到输出缓冲区。然后依次读取 R 中的记录,如果在 S 中找到,则删除。阶段1:从 R 读取数据到 M 个 buffer 中,并且在内存里对 M 个 buffer 的数据进行排序,然后输出排序之后的数据,成为一个子序列,子序列内部的数据有序。用 M - 1 内存存储已经见过的记录,即把已经见过的记录分成 M-1 个 bucket,则每读一条记录,则用在对应的 bucket 中查找是否已经见过这条记录。原创 2023-06-24 17:31:50 · 564 阅读 · 0 评论 -
数据库 Bags 概念和操作
S UNION ALL R 的结果: (1,2) 出现 4次, (3,4)出现3次, (5,6)出现1次。S INTERSECTION R 的结果: (1,2) 出现 1次, (3,4)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。S:(1,2) 出现 3次, (3,4)出现1次。S:(1,2) 出现 3次, (3,4)出现1次。原创 2023-06-21 10:53:43 · 594 阅读 · 0 评论 -
hive metastore 参数 metastore.limit.partition.request 不起作用
MetastoreConf 中定义参数 , 可以限制请求的分区数量,但是在实际测试中不起作用。代码分析如下:2. DDLTask.execute当执行 时,DDLWork 类型的work.getShowPartsDesc() 不为空。3. DDLTask.showPartitions在此方法中可以看到,不论是否有分区,调用db,getPartitionNames 最后一个参数总是 -15. Hive.getPartitionNames6. HiveMetastoreClient.listPa原创 2023-06-13 15:01:26 · 942 阅读 · 0 评论 -
hive 设置hive.allow.udf.load.on.demand=true 使 HiveServer 动态从 Metastore 查找函数
但是我们经常创建 persistent function 就比较麻烦。设置 hive.allow.udf.load.on.demand=true 也可以解决。如果 HiveServer 发现没有此函数,则从 Metastore 查找函数信息。如果找到,则返回用户,避免了创建函数和使用函数连接的不同的 HiveServer 的问题。我们连接一台 HiveServer,创建一个persistent function。现在我们重新启动 beeline 连接另一台 HiveServer,执行。原创 2023-05-30 11:46:14 · 148 阅读 · 0 评论 -
Hive虚拟字段及解释
ROW__OFFSET__INSIDE__BLOCK 在 text,orc,parquet 格式的存储中都是 0,所以默认不可以查询。原创 2023-05-17 11:30:16 · 363 阅读 · 0 评论 -
Hive 任务重试导致结果错误的原因分析及处理方法
Map 任务中的数据使用随机数作为分区函数时,相同的数据每次执行不固定到相同的 Reduce 处理。导致 Map 任务出错重试,或者推测执行时,两次执行导致部分数据丢失。原创 2023-05-16 16:11:59 · 632 阅读 · 0 评论 -
Hive msck 描述
Repair: Dropped partition from metastore : 显示了从metastore 删除了哪些分区。Repair: Added partition to metastore: 显示了在 metastore 添加了哪些分区。DROP PARTITIONS: 把 metastore 上存在,文件系统上不存在的分区从 metastore 删除。ADD PARTITIONS: 把文件系统上存在,metastore 上不存在的分区添加到 metastore。对表的分区进行修复。原创 2023-04-23 15:29:19 · 633 阅读 · 0 评论 -
Hive 不同事务和锁的功能的详细测试
Hive 的事务和锁,可以在会话级别设置。原创 2023-04-07 14:18:28 · 1112 阅读 · 0 评论 -
Hive 简单安装指南
最后日志如下,代码初始化成功。如果初始化一半失败,需要 drop mysql 中对应的数据库后,再重新创建数据库。初始化 schema 在mysql中创建存储 Hive 元数据的表。在 root 账号下,执行以下语句。mysql 版本是8.xxx.修改 mysql 的 root 密码,新版 mysql 没有。下载软件,或者自己编译 hive。执行创建数据库,如果成功,则代表和元数据库交互没有问题。从日志中找临时密码,用最后一行的密码。登录 mysql, 密码是。执行 hive 命令。原创 2023-03-21 16:56:54 · 129 阅读 · 0 评论 -
hive tpcds-benchmark 测试
Hive 性能测试工具介绍原创 2023-02-24 10:54:33 · 1054 阅读 · 0 评论 -
Presto 文档和笔记
使用 ambari 重启 Presto。可以访问其他集群的 HDFS 上的数据。但是不能访问 bos 的数据,因为 Presto 没有 bos 相关的 jar。使用 ambari 把 Presto 的 hive.properties 的 hive.metastore.uri 参数的值为其他集群。把要访问集群的服务器配置放到 Presto 集群所有服务器的 /etc/hosts。原创 2023-02-14 15:00:07 · 614 阅读 · 0 评论 -
Hive 默认分区的测试
Hive 默认分区的数据检索原创 2023-01-13 10:38:01 · 636 阅读 · 0 评论 -
Hive Metastore 和 Hiveserver 2的性能上限
如果抛出以下错误,则建议调大 hive.server2.async.exec.wait.queue.size。metastore 可以建立 10000 个连接,并且每个连接都可以发出请求。hive-server2 仅能建立 500 个连接,受以下参数的控制。但是这些连接不能同时发出请求,受以下两个参数的控制。原创 2023-01-13 10:16:10 · 2077 阅读 · 0 评论 -
排查 Hive 任务导致磁盘写满的过程
计算的中间结果会写到 HDFS,如果用户写的SQL 有问题。,如 A 表 dt=20230101 分区 1000万行,B 表 dt=20230101 有 1万行记录。由于 SQL 没有关联条件,结果有1000亿行。原创 2023-01-05 16:30:09 · 692 阅读 · 1 评论 -
开启 kerberos 后,HiveServer2 的 webui 没有内容的解决方案
开启 kerberos 后,HiveServer2 的 webui 没有内容。页面如下,可以打开,但是即便已经有会话,也有SQL执行,这里一直这样。原创 2022-12-30 14:48:31 · 1055 阅读 · 0 评论 -
Hive Server 清理本地临时文件
Hive server scratchdir 在本地存储一些临时文件。如果使用 kill -9 停止 Hive Server 时,来不及清理本地的 scratchdir。再次启动时,默认是不清理本地的 scratchdir 的。那么多次重启 Hive server 后,有可能在本地有大量垃圾文件,这些文件永远不再访问。造成两个问题。原创 2022-12-30 10:02:22 · 1196 阅读 · 0 评论 -
hive-3.1.3 设置 tez 容器的日志级别为 DEBUG
可以看到 container-lanuncher.sh 最后的命令包含。查看其他日志文件,可以看到级别为 DEBUG 的日志。连接 hive-server 后,执行以下两个语句。执行以下 SQL 进行测试。原创 2022-12-28 14:32:59 · 935 阅读 · 0 评论 -
Hive 查看和修改 tez 容器的资源
由于 tez 引擎在连接 driver 的时候,就启动 AppMaster 和一定数量的 container(默认为0),所以动态设置不生效。查看 tez-site.xml 可以看设置的配置项。查看 tez-default-template.xml 可以看到所有的配置项及默认值。如果查询的值和默认值不一样,说明管理员修改了 tez-site.xml。以下示例是已经运行完的 job。beeline 设置 am 的内存的方法如下,其他参数类似。hive 命令行设置 am 的内存的方法如下,其他参数类似。原创 2022-11-29 15:46:40 · 1199 阅读 · 0 评论 -
两套 Hive 集群使用共同的元数据的方案
两套 Hive 集群使用共同的元数据的方案,需要 Hive 的版本一致。数据存储在单独的存储系统中。原创 2022-11-24 17:26:07 · 779 阅读 · 0 评论 -
【hive-3.1.3】ORC 格式的表和 text 格式的表,当分区的字段数量和表的字段数量不一致,检索结果不相同
ORC 格式的表,和 text 格式的表,如果分区的字段数量和表的字段数量不一致,则 select 出的内容不相同。原创 2022-11-09 09:08:55 · 1493 阅读 · 0 评论 -
Hive 通过 beeline 不能设置 mapred.job.name 的解决方法
通过 beeline 设置 job 的名字,抛出以下异常。但是 hive-cli 没有问题。0: jdbc:hive2://bmr-master-479c2fa:2181/defau> set mapred.job.name=abc;Error: Error while processing statement: Cannot modify mapred.job.name at runtime. It is not in list of params that are allowed to原创 2022-10-19 10:11:52 · 1426 阅读 · 0 评论 -
hive hive.metastore.warehouse.dir 和 hive.metastore.warehouse.external.dir 的作用
第1种,当没有设置 hive.metastore.warehouse.external.dir 参数,或者参数 hive.metastore.warehouse.external.dir 的值为空。${hive.metastore.warehouse.external.dir} 是参数 hive.metastore.warehouse.external.dir 的值。如以下语句在 ${hive.metastore.warehouse.dir} 目录下创建子目录tmp.db,作为数据库的目录。原创 2022-10-14 10:06:38 · 2966 阅读 · 0 评论 -
Hive ORC 和 Parquet 格式的表改变列名后列内容为空的解决办法
此解决办法不使用于所有 hive 版本。hive-3.1.3 支持。此解决办法不使用于所有 hive 版本。hive-3.1.3 支持。如果没有问题,则执行。如果没有问题,则执行。原创 2022-10-13 09:59:06 · 1595 阅读 · 0 评论 -
Hive lateral view 的用法
lateral view 首先将utdf函数应用到每一行上,这时每一行经utdf处理后得到多行输出,这些输出将会组建成一张虚拟表,然后这张虚拟表会跟当前表进行join操作,join完成之后会得出一张结果虚拟表,这张结果表里就有了utdf生成的列,当然原表的列除了utdf消耗的列之外肯定也在都里面。具体来将,由于later view 的工作原理是将原表与 udtf 产生的虚拟表做 inner join 操作,所以如果 udtf 不产生任何结果时,那么对应原表的那一行也会在 inner join 操作后消失。原创 2022-10-11 17:41:16 · 525 阅读 · 0 评论 -
Hive 不同类型的数值型数据和对应的范围
Hive 不同类型的数值型数据和对应的范围原创 2022-10-09 17:19:32 · 474 阅读 · 0 评论 -
hive-1.2 和 hive-3.1 函数不兼容的说明
以下函数,hive-1.2 和 hive 3.1 中,相同的参数,返回的结果不同。在迁移过程中,容易导致数据结果不正确。原创 2022-09-28 17:39:14 · 987 阅读 · 0 评论 -
Timeline-server 做清理时卡住 hive 任务分析
当 timeline server 使用LeveldbTimelineStore 时,hive 任务有时卡住。原创 2022-09-21 18:01:01 · 1224 阅读 · 0 评论 -
Hive 服务是否正常验证方式
如果启用了 kerberos,在执行命令之前,先执行 kinit。原创 2022-09-16 22:42:14 · 1373 阅读 · 0 评论 -
[hive-4.0 ] Too many files with unapproved license: 2 See RAT report in: target/rat.txt
用以下命令编译 hive-4.0(和之前的 hive 版本同样的命令)输出以下错误信息。原创 2022-08-30 14:17:00 · 586 阅读 · 0 评论 -
不同集群的 Hive 迁移方案
本文档描述了怎样把 Hive 数据库从一个 Hadoop 集群迁移到另一个 Hadoop 集群。本文档假定新集群的 Hive 元数据库的内容可以清空。原创 2022-08-12 09:51:54 · 1352 阅读 · 0 评论 -
根据 Application ID找到 Hive 的 SQL 语句
根据 Yarn 的 Application 找到 Hive 的 SQL,需要根据执行引擎(tez 或者 mr)的不同有不同的方法。以下以 TEZ 引擎 为例。原创 2022-08-11 11:28:33 · 1723 阅读 · 0 评论 -
[hive-3.1]Hive 事务和锁
session2的语句,会获取t2表的两个权限,分别是t2表的sharedread权限和t2表partition(pt=1)的sharedread权限这两个权限。在session1执行时,会获取t2表partition(pt=2)这个分区的exclusivewrite权限,现在没有其他会话操作表t2,获取锁。这时,没有事务,开启事务、关闭事务调用时直接返回。以上配置,当调用获取锁、释放锁、开启事务、关闭事务等调用时直接返回。..........................................原创 2022-07-20 16:26:49 · 2098 阅读 · 0 评论 -
hive 1.2 和 hive-3.1 公用一套元数据和元数据迁移和升级的流程方案
本方案包含 hive-1.2 集群,新建的 hive-3.1集群(上面存储的表和库信息可以删除,升级之后和 hive-1.2 公用一个元数据库)。hive-1.2 集群使用的 mysql 数据库迁移到新的地址。升级 hive 1.2 元数据库到 3.1。升级之后,hive-1.2 集群和 hive-3.1 集群共同使用同一个 mysql。一个集群可以看到并操作另一个集群存储在 BOS 上的数据。以下是操作步骤:停止方法:使用命令 或者通过 ambari 操作。停止 hive metastore 后,集群所原创 2022-06-28 10:21:39 · 864 阅读 · 0 评论 -
Hive Server 运行 SQL 慢排查手册
对于分布式系统, 任何地方出问题都有可能导致任务运行慢。本手册仅排查通过 Hive Server 执行 SQL 任务。通过 Hive Server 运行 SQL 主要设计 4 个部分,分别是 MYSQL 数据库、 Hive Metastore、Hive Server 和客户端。每个部分都可能对性能造成影响。MYSQL 数据库: 存储 Hive 的元信息,如表有哪些字段,只有一个 MYSQL 数据库。Hive Metastore:通过 api 接口对 Hive Server 提供元信息服务。多个 Hive原创 2022-06-10 14:23:26 · 2431 阅读 · 0 评论 -
[hive-3.1.3]Beeline 用zookeeper 发现模式连接 HiveServer2 连接 leader 异常
1. 异常描述使用 beeline 连接 hivesever 时,抛出异常如下:[root@vhost-120-28 hive]# beeline -u "jdbc:hive2://vhost-120-26:2181,vhost-120-27:2181,vhost-120-28:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2" --verbose=trueSLF4J: Class path contains mul原创 2022-05-11 10:54:27 · 3332 阅读 · 3 评论