
Hive
文章平均质量分 59
数仓
皮哥四月红
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Sqoop抽取Postgresql数据到HDFS和Hive时数据量增多
1、现象:postgresql源表数据量:抽取到HDFS上和Hive之后数据量:2、原因:使用sqoop从pg库导出数据至HDFS或Hive时,如果数据中包含Hive指定的列分隔符,如”\001”或”\t”,那么在Hive中就会导致数据错位;如果数据中包含换行符”\n”,那么就会导致原先的一行数据,在Hive中变成了两行或多行数据,导致数据量增多。正常的:3、解决:在sqoop执行import导入命令时添加参数–hive-drop-import-delims,作用是在导入时从字符串字原创 2021-08-27 16:36:50 · 1308 阅读 · 0 评论 -
Name node is in safe mode.
之前在抽取pg库数据时任务失败,报错:com.aliyun.emr.flow.agent.common.exceptions.EmrFlowException:###[E30001,STORAGE]: Failed to access the storage, cause: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /emr-flow/emr-header-1.cluster-23原创 2021-08-27 16:31:33 · 585 阅读 · 0 评论 -
is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......
0、任务执行报错截图:1、错误分析:显示物理内存和虚拟内存的占用情况Container [pid=24845,containerID=container_1625047493764_0479_01_000001] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 6.6 GB of 4.9 TB virtual memory used. Killing contai原创 2021-08-27 16:25:25 · 3134 阅读 · 0 评论 -
HDFS数据导入Hive表报错
1、报错:Failed with exception java.io.IOException:java.lang.RuntimeException: hdfs://emr-header-1.cluster-212710:9000/warehouse/hdcdt/ods/ods_act_activity_info/dt=2020-12-10/part-m-00000 is not a Parquet file. expected magic number at tail [80, 65, 82, 49] b原创 2021-08-27 16:10:55 · 2346 阅读 · 0 评论 -
一张图轻松搞懂Hive中的join(内连接、左外连接、右外连接、满外连接)
join语句1 等值 joinHive支持通常的SQL JOIN语句,但是只支持等值连接,==不支持非等值连接==。案例实操select * from stu left join score on stu.id = score.s_id;根据学生和成绩表,查询学生姓名对应的成绩2 表的别名好处 使用别名可以简化查询。 使用表名前缀可以提高执行效率。 案例实操:合并老师与课程表-- hive当中创建course表并加载数据create table ..原创 2020-08-19 14:45:34 · 10178 阅读 · 3 评论 -
Hive中的lateral view 、explode、reflect、行转列、列转行、窗口函数与分析函数使用与区别详解
目录一、使用explode函数将hive表中的Map和Array字段数据进行拆分二、使用explode函数拆分json字符串数据三、配合LATERAL VIEW使用四、列转行五、行转列六、reflect函数七、窗口函数与分析函数1、创建hive表并加载数据2、窗口函数3、OVER从句4、分析函数5、增强的聚合Cube和Grouping和Rollup6、使用cube和ROLLUP根据GROUP BY的维度的所有组合进行聚合。一、使用explode函...原创 2020-08-19 13:10:56 · 6919 阅读 · 0 评论 -
Hive中常用函数介绍和使用说明(非常全面和详细,值得收藏~)
目录一、关系运算二、数学运算三、逻辑运算四、数值计算五、日期函数六、条件函数七、字符串函数八、集合统计函数九、复合类型构建操作十、复杂类型访问操作十一、复杂类型长度统计函数一、关系运算1、等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE hive> select 1 from tableName where 1=1; 2、不等值比较: <>语法原创 2020-08-19 11:14:40 · 3060 阅读 · 1 评论 -
Hive中常用的企业级调优手段
目录一、Fetch抓取二、本地模式三、表的优化1、小表和大表 join2、大表 join 大表1)空 key 过滤2)空 key 转换3、map join4、group By5、count(distinct)6、笛卡尔积四、使用分区剪裁、列剪裁五、并行执行六、严格模式七、JVM重用八、推测执行九、压缩十、使用EXPLAIN(执行计划)十一、数据倾斜1、合理设置Map数2、小文件合并3、复杂文件增加Map数4、合理设置原创 2020-08-18 12:03:16 · 423 阅读 · 0 评论 -
Hive中的数据导入和导出、分区表和分桶表的使用与区别详解
目录一、Hive数据导入二、Hive数据导出三、Hive的分区表1.1 为什么要分区?1.2 外部分区表综合练习四、Hive的分桶表1.1 分桶表原理1.2 作用1.3 案例演示:创建分桶表五、分区表和分桶表的区别一、Hive数据导入1 直接向表中插入数据(强烈不推荐使用)hive (myhive)> create table score3 like score;hive (myhive)> insert into table score3原创 2020-08-17 10:33:59 · 3008 阅读 · 0 评论 -
Hive中的DDL操作详解(库和表的创建删除、内部表和外部表的使用区别)
目录Hive的DDL操作1 数据库DDL操作1.1 创建数据库1.2 显示所有数据库1.3 查询数据库1.4 查看数据库详情1.5 切换当前数据库1.6 删除数据库2 表DDL操作2.1 建表语法介绍2.2 创建内部表2.3 创建外部表2.4 内部表与外部表的互相转换2.5 内部表与外部表的区别2.6 内部表与外部表的使用时机2.7 hive的分区表外部分区表综合练习Hive的DDL操作1 数据库DDL操作1.1 创建数据库原创 2020-08-13 14:45:07 · 1298 阅读 · 0 评论 -
数据仓库介绍和Hive的优缺点、架构原理、交互方式以及数据类型详解
目录1. 数据仓库1.1 数据仓库的基本概念1.2 数据仓库的主要特征1.3 数据仓库与数据库区别1.4 数据仓库分层架构2. Hive2.1 Hive的概念2.2 Hive与数据库的区别2.3 Hive的优缺点2.4 Hive架构原理3. Hive的交互方式3.1 Hive交互shell3.2 Hive JDBC服务3.3 Hive的命令4. Hive的数据类型4.1 基本数据类型4.2 复合数据类型1. 数据仓库1.1 数据仓库原创 2020-08-13 11:44:25 · 1773 阅读 · 0 评论 -
Hive安装部署详细步骤
目录1、安装前准备:2、Hive安装部署2.1 先决条件2.2 准备安装包2.3 解压2.4 修改配置文件2.5 拷贝mysql驱动包2.6 配置Hive环境变量2.7 验证安装1、安装前准备:安装好对应版本的hadoop集群(node01、node02、node03),并启动hadoop的HDFS以及YARN服务 安装了MySQL服务,并启动MySQL的服务。如果没有安装,可以参考:安装MySQL2、Hive安装部署注意:hive就是一个构建数据仓库的工原创 2020-08-12 12:19:47 · 2324 阅读 · 0 评论 -
Hive中实现数据抽样的三种方法(数据块抽样、分桶抽样、随机抽样)使用与区别详解
前言当数据量特别大时,对全体数据进行处理存在困难时,抽样就显得尤其重要了。抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。Hive提供了数据取样(SAMPLING)的功能,能够根据一定的规则进行数据抽样,目前支持数据块抽样,分桶抽样和随机抽样,下面结合具体例子分别学习。准备工作(1)新建测试用表:employInfocreate table employInfo(deptID int,employID int,employNam原创 2020-07-15 13:12:27 · 5727 阅读 · 1 评论 -
Hive中的四种排序方式(order by,sort by,distribute by,cluster by)使用与区别详解
在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别:order bysort bydistribute bycluster by一、order by(全局排序)1、作用:全局排序,只有一个reducer。order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序),也正因为只有一个reducer,所以当输入的数据规模较大时会导致计算时间较长。 set hive.mapr原创 2020-07-14 17:42:17 · 15105 阅读 · 14 评论 -
Hive中的静态分区和动态分区使用与区别详解
Hive中支持的分区类型有两种:静态分区(static partition)动态分区(dynamic partition)两者的区别:主要在于静态分区需要手动指定,而动态分区是基于查询参数的位置去推断分区的名称,从而建立分区。总的来说就是,静态分区的列是在编译时期通过用户传递来决定的;动态分区只有在SQL执行时才能确定。下面举例详细说明:一、静态分区(static partition)1、静态分区-单分区1)创建静态分区表t1并向表中导入test.txt文件中的测试数据create t原创 2020-07-08 16:56:09 · 10975 阅读 · 1 评论 -
Hive中的文件存储格式TEXTFILE、SEQUENCEFILE、RCFILE、ORCFILE、Parquet 和 AVRO使用与区别详解
前言Hive中常用的文件存储格式有:TEXTFILE、SEQUENCEFILE、RCFILE、ORC、PARQUET,AVRO。前面两种是行式存储,后面两种是列式存储;所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了A方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。如果为textfile的文件格式,直接load就OK,不需要走MapReduce;如果是其他的类型就需要走MapReduce了,因为其他的类型都涉及到了文件的压.原创 2020-07-07 19:24:28 · 4547 阅读 · 1 评论 -
Hive数据仓库之全量表、增量表、快照表、切片表和拉链表
待整理实现!https://blog.csdn.net/mtj66/article/details/78019370?原创 2020-07-03 11:47:51 · 8120 阅读 · 0 评论 -
Failure to find xxx in https://repo.maven.apache.org/maven2
记录之前在使用idea编写Hive数仓UDF函数时遇到的一个问题,UDF函数编写完成之后测试运行没有问题,但是在打包的时候报错:Failure to find org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until原创 2020-07-02 10:03:35 · 10644 阅读 · 1 评论 -
Hive内置函数和自定义函数(UDF、UDTF)
内置函数在Hive中查看所有的内置函数和使用方法命令:SHOW FUNCTIONS;DESCRIBE FUNCTION <function_name>;DESCRIBE FUNCTION EXTENDED <function_name>;内置函数详情可以查看官方文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Built-inOperators原创 2020-07-01 18:08:11 · 838 阅读 · 0 评论 -
如何从Hive数仓3万张表中快速查询特定的几条数据在哪些表里有存储
这是最近项目中所遇到的一个比较奇葩的需求,重点是如何快速地实现这个需求。思路一:先考虑实现需求,后面再进行速度和性能上的进一步优化。先是考虑从hive的元数据库中把具有该字段的表信息都找出来,然后扫描这些表的时候只针对目标字段进行过滤和判断,避免直接针对3万张表进行全表扫描。为了方便演示,简化需求为从hive数据仓库中的ods库的几十张表里找出字段sex=“UnKnown”的数据在哪些表中有存储。采用Shell脚本来实现,代码如下:#!/bin/bashdName="ods"resultT原创 2020-06-16 17:34:43 · 1230 阅读 · 0 评论 -
hive中执行sql后一直是ACCEPTED: waiting for AM container to be allocated, launched and register with RM.
查看yarn的后台任务都是显示的ACCEPTED:可以执行建库和建表以及select * 的操作,但是其它的操作就一直卡住了:原因与解决:看了网上的博客资料,先是对namenode进行格式化之后重启hive但也还是不行看日志怀疑是没有资源可分配?于是又把给虚拟机的内存从2G增加到8G,并且在hive-site.xml中又增加了对调度器最小和最大资源分配的设置:<property><name>yarn.scheduler.minimum-allocation-mb原创 2020-06-04 14:48:15 · 1853 阅读 · 0 评论