随笔分类 - 大数据-Hive
摘要:1.数值函数 (1).round() 四舍五入 (2).ceil() 向上取整 (3).floor() 向下取整 2.字符串函数 (1).substring() 字符串截取 该函数一共有三个参数 1).第一个参数表示要截取的字符串 2).第二个参数表示截取的起始位置,可以匹配instr使用 3).第
阅读全文
摘要:表名: 交易明细表 字段: 产品、交易时间(精确到时分秒)、交易金额。 进行以下四个统计需求的实现: 1)、统计每个产品每天的总交易额 2)、统计每个产品每天的当月总交易额 3)、统计每天当日交易额排名前三的产品 4)、统计每个产品每天的最近7天总交易额 例如建表语句如下: CREATE TABLE
阅读全文
摘要:将关系型数据库(Oracle、MySQL、PostgreSQL、SQL Server)的表迁移到Hive时,数据类型映射是一个关键问题。以下是主要数据库类型与Hive数据类型的对应关系。 通用数据类型映射表 源数据库类型Hive数据类型说明 INTEGER, INT INT 32位整数 BIGINT
阅读全文
摘要:Hive 的执行原理基于将类 SQL(HQL)查询转换为分布式计算任务(如 MapReduce、Tez 或 Spark),并通过元数据管理实现数据与计算的解耦。 以下是其核心原理的详细分析: 一、Hive 执行流程 查询提交与解析 用户通过 CLI、JDBC 或 Web UI 提交 HQL 查询
阅读全文
摘要:一、定位Hive慢任务的方法 1. 查看日志与执行计划 Hive日志:启用详细日志(hive -hiveconf hive.root.logger=DEBUG,console),检查任务执行阶段的耗时。 EXPLAIN命令:通过EXPLAIN [FORMATTED] <query>生
阅读全文
摘要:Hive查询缓慢是数据仓库运维中常见的问题,可能由数据规模、查询设计、资源配置等多方面因素导致。 以下是常见原因及优化手段的系统总结: 一、数据层面原因 1. 数据量过大 表现:全表扫描(如SELECT *)、大表未分区。 优化: 分区裁剪:对表按时间/业务维度分区(如PARTITIONED BY
阅读全文
摘要:一、数据存储与表设计优化 列式存储与压缩 使用ORC/Parquet格式存储数据,减少I/O并提升压缩效率 启用Zlib或Snappy压缩算法: SET hive.exec.orc.compression.strategy=SPEED; -- ORC压缩优化 分区与分桶策略 按时间或业务
阅读全文
摘要:1. 架构与连接方式 对比项Hive CLIBeeline 服务依赖 直接访问 Metastore,无需启动额外服务 需依赖 HiveServer2(HS2)服务 通信协议 本地模式(无网络协议) 基于 JDBC/ODBC 协议,支持远程连接 客户端类型 单机客户端
阅读全文
摘要:多数介绍数据倾斜的文章都是以大篇幅的理论为主,并没有给出具体的数据倾斜案例。当工作中遇到了倾斜问题,这些理论很难直接应用,导致我们面对倾斜时还是不知所措。 今天我们不扯大篇理论,直接以例子来实践,排查是否出现了数据倾斜,具体是哪段代码导致的倾斜,怎么解决这段代码的倾斜。 当执行过程中任务卡在 99%
阅读全文
摘要:1. 获取当前时间--hiveselect from_unixtime(unix_timestamp()); ## 2021-01-06 22:53:16 --精确到今天的时分秒select from_unixtime(unix_timestamp('2021-12-07 13:01:03'),'y
阅读全文
摘要:(一)安装前提 (1) 安装JDK1.8及以上版本 (2) 已经安装MySQL,推荐5.7。 (3) 已经安装Hadoop。 JDK、MySQL、Hadoop的安装,本文不再介绍。 (二)安装Hive 1.下载并解压Hive安装包 (1)下载MySQL安装包 MySQL下载: https://dow
阅读全文
摘要:问题描述 使用hive/bin目录下的hive启动客户端,使用!connect jdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错: Error: Could not open client transport with J
阅读全文
摘要:问题描述 在阿里云服务器上安装的Hadoop和Hive,刚开始关闭了防火墙。但是由于服务器被被黑客安装挖矿程序,所以开启了防火墙。但是即使开启了所有可能的端口,但是在向Hive中插入数据时,依然报错提示:Call From hadoop01/172.23.238.2 to hadoop01:1002
阅读全文
摘要:笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。本文简单介绍一下两种join的原理和机制。 一 .Common Join 如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作
阅读全文
摘要:1、启动命令 #!/bin/bash nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 & nohup hive --service hiveserver2 >> $HIVE_HOME/logs/hiveserv
阅读全文
摘要:1.前言 Hive的分区和分桶都是细化数据管理,加快数据查询和分析,两者有什么区别呢?下面讲解一下分区和分桶的原理。 2.分区 (1)分区原理 Hive的分区表可以有一个或多个分区键,用于确定数据的存储方式。分区(除了作为存储单元)还允许用户有效地识别满足指定条件的数据,显著加快查询分析速度。分区字
阅读全文
摘要:1.内存溢出 (1)map阶段 解决:一般存在MapJoin,设置参数set hive.auto.convert.join = false转成reduce端的Common Join。 (2)shuffle阶段 解决:减少每个reduce处理的数据量,调整参数:hive.exec.reducers.b
阅读全文
摘要:1.使用hive实现WordCount (1) 创建数据库 create database wordcount; (2) 创建外部表 create external table word_data(line string) row format delimited fields terminated
阅读全文
摘要:1.Fetch抓取 Fetch抓取是指Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml.tem
阅读全文
摘要:1. lateral view 简介 hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积,从而得到明细表。配合UDTF函数使用,一般情况下经常与explode函数搭配,explode的操作对象(列值)是 ARRAY 或者 MA
阅读全文