Hive
文章平均质量分 88
Hive面试题解析
走过冬季
大数据知识分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
03 | Hive 如何处理小文件
场景推荐做法新表设计使用 ORC/Parquet + 分区 + 分桶ETL 写入开启参数,控制 Reduce 数动态分区设置防止分区爆炸已有小文件ORC 表用,其他格式用重写长期治理建立每日小文件合并调度任务。原创 2025-11-19 11:08:00 · 833 阅读 · 0 评论 -
hive 成本优化器 (CBO - Cost-Based Optimizer) 原理
特性说明核心价值基于数据分布智能选择最优执行计划关键前提准确、及时的统计信息主要收益Join 性能提升 2~10 倍,减少资源浪费适用场景多表关联、复杂子查询、大表 Join推荐指数⭐⭐⭐⭐☆(需配套统计信息管理)💡CBO 不是“银弹”,而是“数据驱动优化”的基础设施。当你的 Hive 数仓进入中大规模阶段,建立统计信息收集机制 + 启用 CBO是性能调优的必经之路。通过合理使用 CBO,你可以让 Hive 从“被动执行 SQL”升级为“主动优化查询”,真正释放大数据分析的性能潜力。原创 2025-11-19 10:50:05 · 684 阅读 · 0 评论 -
02 | Hive SMB Join 原理
特性说明核心思想利用预计算(分桶+排序)将 Join 转为高效的流式 Merge最大优势无 Shuffle、无 Reduce、低内存、高吞吐适用场景两个大表按相同 Key 分桶排序后的等值 Join性能提升相比 Common Join 可提速 3~10 倍使用门槛需提前规划表结构,ETL 流程需配合💡SMB Join 是 Hive 数仓中“用存储换计算”的经典范例。虽然建表和数据导入稍复杂,但在高频大表关联场景下,收益巨大,值得投入。原创 2025-11-19 10:39:46 · 702 阅读 · 0 评论 -
01 | Hive SQL执行步骤
Hive 不是数据库,而是一个“SQL 到分布式计算的翻译器”。阶段目标解析 & 语义分析理解用户意图,验证合法性逻辑计划 & 优化用最少的计算做最多的事物理计划 & 执行借助 Hadoop 生态高效跑任务编写更高效的 Hive SQL;快速定位性能瓶颈(如全表扫描、数据倾斜);合理调优参数(如选择合适的文件格式和执行引擎。💡记住:Hive 的慢,往往不是 SQL 的错,而是执行计划没优化好。原创 2025-11-19 09:47:53 · 1939 阅读 · 0 评论 -
Hive udf函数包括哪几类
类型输入输出用途典型场景内置示例UDF1行 → 1行转换处理字符串/日期/数值处理upper()date_add()UDAF多行 → 1行聚合统计GROUP BY汇总COUNT()SUM()UDTF1行 → 多行行扩展展开explode()JAR 包注册-- 添加 JAR-- 创建临时函数-- 使用。原创 2025-11-11 09:35:52 · 353 阅读 · 0 评论 -
05 | Hive使用技巧
新版本的Hive启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请的太小,导致后期开启本地模式,执行复杂的SQL时经常会报错:java.lang.OutOfMemoryError: Java heap space,因此最好提前调整一下HADOOP_HEAPSIZE这个参数。(1)修改$HIVE_HOME/conf下的hive-env.sh.template为hive-env.sh。(2)将hive-env.sh其中的参数 export HADOOP_HEAPSIZE修改为2048,原创 2025-06-05 09:43:10 · 780 阅读 · 0 评论 -
06 | Hive DDL操作
需要注意的是:修改数据库location,不会改变当前已有表的路径信息,而只是改变后续创建的新表的默认的父目录。我们可以考虑使用专门负责JSON文件的JSON Serde,设计表字段时,表的字段与JSON字符串中的一级字段保持一致,对于具有嵌套结构的JSON字符串,考虑使用合适复杂数据类型保存其内容。管理表意味着Hive会完全接管该表,包括元数据和HDFS中的数据。该语法允许用户利用select查询语句返回的结果,直接建表,表的结构和查询语句的结构保持一致,且保证包含select查询语句放回的内容。原创 2025-06-05 09:44:15 · 915 阅读 · 0 评论 -
Hive内部表与外部表区别详解
Hive 内部表(Managed Table)和外部表(External Table)的核心区别在于。内部表更适合生命周期短暂、完全由单一 Hive 作业流程控制的中间数据。理解这一点至关重要。原创 2025-05-29 10:36:35 · 978 阅读 · 0 评论 -
09 | Hive Join语句
本例中会首先启动一个MapReduce job对表e和表d进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表l进行连接操作。union和union all都是上下拼接sql的结果,这点是和join有区别的,join是左右关联,union和union all是上下拼接。例如:连接三个表,至少需要两个连接条件。(1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称。将员工表30部门的员工信息和40部门的员工信息,利用union进行拼接显示。原创 2025-06-05 09:47:13 · 1104 阅读 · 0 评论 -
15 | Hive常见问题与错误
(1)导错驱动包,应该把mysql-connector-java-5.1.27-bin.jar导入/opt/module/hive/lib的不是这个包。解决方案:在/var/lib/mysql目录下创建:-rw-rw----. 1 mysql mysql 5 12月 22 16:41 hadoop102.pid文件,并修改权限为777。在Hive客户端临时设置io.sort.mb和mapreduce.task.io.sort.mb两个参数的值为10。可能是Hadoop的Yarn没开启。原创 2025-06-05 09:53:49 · 1060 阅读 · 1 评论 -
03 | Hive元数据配置存储
(3)查看元数据库中存储的表中。(1)查看元数据库中存储的。(2)查看元数据库中存储的。原创 2025-06-05 09:39:16 · 567 阅读 · 0 评论 -
13 | Hive文件格式和压缩
Body由1个或多个stripe组成,每个stripe一般为HDFS的块大小,每一个stripe包含多条记录,这些记录按照列进行独立存储,每个stripe里有三部分组成,分别是Index Data,Row Data,Stripe Footer。查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。需要注意的是,在执行往表中导入数据的SQL语句时,用户需设置以下参数,来保证写入表中的数据是被压缩的。原创 2025-06-05 09:51:00 · 616 阅读 · 0 评论 -
Hive软件架构及关键组件解析
总而言之,Hive 的架构巧妙地利用 Hadoop 的存储和计算能力,通过 Metastore 管理元数据,将类 SQL 查询转换成分布式计算任务,为大数据分析提供了一个强大且熟悉的接口。能力,同时隐藏了底层分布式计算的复杂性。Hive 的软件架构是一个经典的。模型,核心设计理念是将。原创 2025-05-29 10:51:12 · 993 阅读 · 0 评论 -
02 | Hive安装部署
观察HDFS的路径/user/hive/warehouse/stu,体会Hive与Hadoop之间的关系。5)删除HDFS中/user/hive/warehouse/stu中数据。由于在企业开发中,都是多人协作开发,需要多客户端同时访问。数据库的特点是同一时间只允许一个客户端访问。客户端同时访问,就会报错。(2)source一下。支持多客户端同时访问。默认使用的元数据库为。原创 2025-06-05 09:38:08 · 948 阅读 · 0 评论 -
01 | Hive入门
1Hive简介Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。那为什么会有Hive呢?它是为了解决什么问题而诞生的呢?下面通过一个案例,来快速了解一下Hive。例如:需求,统计单词出现个数。(1)在Hadoop课程中我们用MapReduce程序实现的,当时需要写Mapper、Reducer和Driver三个类,并实现对应逻辑,相对繁琐。test表id列atguiguatguiguss。原创 2025-06-05 09:36:54 · 412 阅读 · 0 评论 -
11 | Hive自定义函数
1Hive自带了一些函数比如max/min等但是数量有限自己可以通过自定义UDF来方便的扩展。2当Hive提供的内置函数无法满足你的业务处理需要时此时就可以考虑使用用户自定义函数UDF。3一进一出。用户自定义聚合函数,多进一出。类似于:count/max/min用户自定义表生成函数,一进多出。如lateral view explode()4官方文档地址5编程步骤(1)继承Hive提供的类(2)实现类中的抽象方法(3)在hive的命令行窗口创建函数。原创 2025-06-05 09:49:05 · 885 阅读 · 0 评论 -
04 | Hive服务部署
答案是都有可能,具体是谁,由Hiveserver2的hive.server2.enable.doAs参数决定,该参数的含义是是否启用Hiveserver2用户模拟的功能。模拟用户的功能,默认是开启的。Hive的hiveserver2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。Hive的metastore服务的作用是为Hive CLI或者Hiveserver2提供元数据访问接口。原创 2025-06-05 09:42:32 · 766 阅读 · 0 评论 -
12 | Hive分区表
再比如,若分区表为外部表,用户执行drop partition命令后,分区元数据会被删除,而HDFS的分区路径不会被删除,同样会导致Hive的元数据和HDFS的分区路径不一致。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分,分区针对的是数据的存储路径,分桶针对的是数据文件。分桶表的基本原理是,首先为每行数据计算一个指定字段的数据的hash值,然后模以一个指定的分桶数,最后将取模运算结果相同的行,写入同一个文件中,这个文件就称为一个分桶(bucket)。原创 2025-06-05 09:50:03 · 1029 阅读 · 0 评论 -
07 | Hive DML操作
Export导出语句可将表的数据和元数据信息一并到处的HDFS路径,Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复。(1)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。(2)overwrite:表示覆盖表中已有数据,否则表示追加。②加载HDFS上数据,导入完成后去HDFS上查看文件是否还存在。(2)加载HDFS文件到hive中。(3)加载数据覆盖表中已有的数据。(1)加载本地文件到hive。②加载数据覆盖表中已有的数据。原创 2025-06-05 09:44:59 · 966 阅读 · 0 评论 -
08 | Hive基本查询语法
反之返回false。B的表达式说明如下:‘x%’表示A必须以字母‘x’开头,‘%x’表示A必须以字母‘x’结尾,而‘%x%’表示A包含有字母‘x’,可以位于开头,结尾或者字符串中间。如果A和B都为null或者都不为null,则返回true,如果只有一边为null,返回false。如果A小于等于B,则返回true,反之返回false。如果A大于等于B,则返回true,反之返回false。如果A不等于null,则返回true,反之返回false。如果A等于null,则返回true,反之返回false。原创 2025-06-05 09:45:59 · 674 阅读 · 0 评论 -
10 | Hive函数
语法:get_json_object(string json_string, string path)语法:regexp_replace(string A, string B, string C)语法:concat_ws(string A, string…语法二:substring(string A, int start, int len)语法:concat(string A, string B, string C, ……语法:replace(string A, string B, string C)原创 2025-06-05 09:48:02 · 908 阅读 · 0 评论 -
Hive和传统数据库之间的区别
维度传统数据库Hive定位OLTP 事务系统OLAP 分析系统数据规模小到中等大到超大实时性高低(批处理)事务支持完整 ACID有限支持适用场景在线业务离线分析💡核心结论传统数据库:适合实时事务处理、小规模数据、强一致性场景;Hive:适合大数据分析、离线处理、弱一致性场景。在现代数据架构中,两者往往是互补关系:传统数据库处理在线业务,Hive 进行离线分析和数据仓库建设。原创 2025-11-10 15:31:23 · 1131 阅读 · 0 评论 -
hive mapjoin 原理
Hive MapJoin 通过将小表广播到所有 Mapper 内存中构建 Hash 表,在 Map 阶段直接完成 JOIN,避免了 Reduce Shuffle,大幅提升性能;但要求小表足够小、JOIN 条件为等值,且不支持 FULL OUTER JOIN。这是 Hive 性能优化中最基础也最重要的技术之一。原创 2025-11-10 10:14:54 · 393 阅读 · 0 评论 -
如何通过hive执行计划了解sql执行过程
通过 EXPLAIN 查看 Hive 执行计划:执行顺序为 TableScan → Filter → Select → Group By → Join → Reduce → Output。关键关注点:数据量统计(Num rows)、操作符类型(Map Join vs Shuffle Join)、Stage 划分、分区裁剪效果。优化方向:过滤条件前移、Map Join 触发、数据倾斜处理、向量化执行。实践建议每次复杂查询前都查看执行计划,验证优化策略是否生效。原创 2025-11-10 16:05:22 · 364 阅读 · 0 评论 -
Hive内部表与外部表使用场景解析
特性内部表 (Managed Table)外部表 (External Table)创建语法数据所有权Hive用户/外部系统存储位置Hive 默认仓库路径 (必须指定 (LOCATION子句)删除表 (DROP TABLE元数据 (Metadata) + 实际数据文件 (Data)都被删除仅删除元数据 (Metadata),数据文件保留数据安全性数据随表删除,风险较高数据独立于表存在,更安全适用场景中间表、临时表、Hive 完全控制的数据原始数据、共享数据、防止误删的数据。原创 2025-06-17 09:56:30 · 1127 阅读 · 0 评论 -
Hive数据倾斜问题及解决方案
开启(针对 Group By),开启(针对 Join)。调整或直接设置 Reduce 数。首选 **Skew Join 优化 () **。如果小表不大,强制使用Map Join。对于极端热点 Key,考虑热点 Key 分离或加盐打散。确保开启。针对改写为两层GROUP BY或使用。始终先通过采样查询识别热点 Key 和倾斜程度。在数据建模和 ETL 设计时尽量避免引入倾斜。原创 2025-06-17 11:00:58 · 1704 阅读 · 0 评论 -
hive sql 为什么没有spark sql快
对比维度对速度的影响磁盘I/O多,每个阶段都落盘少,优先内存Spark 快得多计算模型批处理,阶段间阻塞DAG,流水线执行Spark 快得多迭代计算支持差,效率极低原生支持,效率高Spark 快极多内存利用主要用磁盘充分利用内存Spark 快得多优化器传统,优化规则少先进的 Catalyst 优化器Spark 更智能高级特性无Tungsten(代码生成,堆外内存)Spark CPU效率更高容错性好(通过磁盘冗余)好(通过RDD血统+检查点)相当延迟高(分钟级及以上)原创 2025-09-04 14:24:32 · 605 阅读 · 0 评论
分享