![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
大风车滴呀滴溜溜地转
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
展开
-
【Hive】常用指令集锦
创建表use database_name;drop table if exists new_table_name;create table new_table_name as select * from origin_table_name;从Hive数据仓库下载数据到本地hive -e "set hive.cli.print.header=true;select * from database_name.table_name;" > ./data.csv根据表字段值分类汇总.原创 2022-04-26 16:08:03 · 307 阅读 · 0 评论 -
MapReduce不同进度的Reduce都在干什么
reduce: 0-33% 是shuffle阶段。这个阶段将mappers中的数据转移到reducers中。reduce: 33%-67% 是sort阶段。这个阶段必须在mappers完成之后。reduce: 67%-100% 是实际运行 reduce 代码的阶段。每次reduce任务完成时,该百分比都会上升。...原创 2021-06-22 17:54:53 · 472 阅读 · 0 评论 -
Hive SQL子句中 group by 1 是什么意思?
前段时间处理一个别人写的SQL语句,其中的 group by语句写的是group by 1。刚看到的时候还挺懵,还以为写错了,但是能跑起来,还能实现功能,这就有意思了,又是一个我不知道的知识点。后来查了一下,才知道它的意思是不管第一列叫什么,都按第一列进行分组。举个例子:SELECT account_id, open_emp_id ^^^^ ^^^^ 1 2FROM accountGROUP BY 1;注意这个索引是从1原创 2022-02-27 14:57:55 · 4322 阅读 · 1 评论 -
hive中如何进行按周计算
最近遇到一个需求,有一些统计数据,原本是按月更新的计算的,但是现在要按周更新计算。在hive表中,月更数据一般按照一个月的最后一天进行分区存储,那么如果是按月更新的话直接根据分区进行计算就可以了。而对于日更的数据,如果要按月计算的话,可以通过substr()函数将日期进行切分,取出只带月份的数据。例如,对于dt = 2022-02-19这个日期,可以通过substr(dt, 1, 7)取出dt = 2022-02。select substr('2022-02-19', 1, 7)输出:2022原创 2022-02-19 17:06:58 · 7111 阅读 · 0 评论 -
【Hive】一次被分区条件和笛卡尔积制裁的经历
记录一下之前遇到的一个问题:一张几百T按天dt分区的订单表,要关联一张几M的订单类型快照表,因为订单表在左边,所以加了以下优化:set hive.auto.convert.join=true;原创 2021-08-06 14:15:33 · 379 阅读 · 0 评论 -
1.4 Hive和数据库的比较
由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看, Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。1.4.1 查询语言由于 SQL 被广泛的应用在数据仓库中,因此,专门针对 Hive 的特性设计了类 SQL原创 2021-06-23 09:27:04 · 243 阅读 · 0 评论 -
1.3 Hive架构原理
1)用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc 访问hive)、WEBUI(浏览器访问hive)2)元数据:Metastore元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的derby 数据库中,推荐使用MySQL 存储Metastore3)Hadoop使用HDFS 进行存储,使用MapReduce 进行计算。4)驱动器:Drive.原创 2021-06-23 09:09:50 · 265 阅读 · 0 评论 -
1.2 Hive的优缺点
1.2.1 优点(1)操作接口采用类SQL 语法,提供快速开发的能力(简单、容易上手)。(2)避免了去写MapReduce,减少开发人员的学习成本。(3)Hive 的执行延迟比较高,因此Hive 常用于数据分析,对实时性要求不高的场合。(4)Hive 优势在于处理大数据,对于处理小数据没有优势,因为Hive 的执行延迟比较高。(5)Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。1.2.2 缺点1)Hive 的HQL 表达能力有限(1)迭代式算法无法表达(2)数.原创 2021-06-23 09:05:32 · 567 阅读 · 0 评论 -
1.1 什么是Hive
1) hive 简介Hive:由Facebook 开源用于解决海量结构化日志的数据统计工具。Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL 查询功能。2) Hive 本质将HQL 转化成MapReduce 程序:(1)Hive 处理的数据存储在HDFS(2)Hive 分析数据底层的实现是MapReduce(3)执行程序运行在Yarn 上...原创 2021-06-23 09:02:55 · 255 阅读 · 0 评论 -
Hive 任务卡在 map = 0%, reduce = 0%
Hive 卡在map = 0%, reduce = 0%阶段解决:增加map个数,设置mapreduce.input.fileinputformat.split.maxsize 小于系统默认值,需要综合考虑调用更多map时候的消耗定位时发现任务卡在map = 0%, reduce = 0%阶段,而且发现map分配数量很少,所以猜测分配map较慢,增加map数量可解决问题。...原创 2021-06-21 15:14:34 · 3618 阅读 · 0 评论 -
查看Hive SQL执行日志
yarn logs -applicationId application_1622563480758_1071631原创 2021-06-21 09:56:17 · 3062 阅读 · 0 评论 -
hive -e ,hive -f 用法
-e ‘quoted query string’: 运行引号内sql查询语句 Sql from command line-f : 从文件中运行sql语句 Sql from filelinux环境下:$hive -e “sql语句” > 1.log 发现执行后会把结果写入1.log中,包括count(*)的结果$hive -f 某个文件(里面是sql语句) > 2.log 发现执行后会把结果写入2.log中,包括count(*)的结果$hive -f 某个文件(里面是sql语句)原创 2021-05-28 10:58:17 · 1189 阅读 · 3 评论