Hive
灵佑666
这个作者很懒,什么都没留下…
展开
-
hive 常用分析命令
hive 常用分析命令原创 2022-06-06 09:36:02 · 277 阅读 · 1 评论 -
Hive 与 Parquet文件Schema类型不一致问题
问题1:Parquet文件Schema与Hive建表Schema不一致导致spark job报错。Hive:DoubleParquet: Long具体报错日志日下:没有在参数层面解决,最终将hive字段改为了 bigint--- 1. 不加参数org.apache.spark.SparkException: Task failed while writing rows.Caused by: com.databricks.sql.io.FileReadException: Error w原创 2022-04-12 10:58:08 · 4046 阅读 · 0 评论 -
spark-sql读取不到parquet格式的hive表
情况一:当向Hive metastore中读写Parquet表时,Spark SQL将使用Spark SQL自带的Parquet SerDe(SerDe:Serialize/Deserilize的简称,目的是用于序列化和反序列化),而不是用Hive的SerDe,Spark SQL自带的SerDe拥有更好的性能。这个优化的配置参数为spark.sql.hive.convertMetastoreParquet,默认值为开启。所以有时会发生spark自带的序列化方式无法解析hive中的parquet数据,原创 2021-02-07 18:02:04 · 1468 阅读 · 0 评论 -
sparksql 指定输出的文件名
这是sparksql写入hive表指定输出文件名的自定义方式。版本:spark-2.3.2实现目的在目前的业务需求中,需要实现场景为:当往一个hive表中不断以Append的方式写入数据,需要知道哪些文件是哪一次运行后追加的文件,所以最好的方法是往输出的文件名前添加前缀,如日期,或者调度编号等。但是spark未提供相应参数接口,需要更改一丢丢源码来实现。实现方式只需要更新 org.apache.spark.internal.io.HadoopMapReduceCommitPro原创 2022-01-24 12:59:17 · 2166 阅读 · 0 评论 -
hive用temporary table替换with
一、用temporary table替换with的效果 用with从一个宽表中读取了2个字段生成tmb_tb,在后面的查询中两次用到了tmb_tb,执行用时70分钟; 用 temporary table 替代with后(需要把临时表保存到内存中),相同的查询用时50分钟二、with的缺点 with的内容并不会缓存,每用一次就会执行一次。我原本想实现的目标是通过with从宽表中取2个字段生成一个tmp_tb,后面之后直接从tmp_tb中读取这两个字段,但是实际的情况是每从tmp_tb中抽一原创 2021-12-21 16:00:41 · 647 阅读 · 0 评论 -
Hive 四种排序函数与开窗函数
Hive的四种排序:1.全局排序 order by(只有一个reduce,对所有数据进行排序) 只要使用 order by ,reduce只有一个。2.sort by 内部有序3.distribute by 分区字段 store by 排序字段4.cluster by:当分区条件和排序条件相同使用cluster by .5.group by:对检索的数据进行单纯的分组,一般和聚合函数一起使用。6.partition by:用来辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件转载 2021-05-19 09:54:47 · 2207 阅读 · 0 评论 -
Hive show partitions 显示分区太多怎么办/常用命令
-- 显示前 7 个分区hive -e "set hive.cli.print.header=false;show partitions rca_rpt.rca_daily_report;" | more -10-- 显示后 9 个分区hive -e "set hive.cli.print.header=false;show partitions rca_rpt.rca_daily_report;" | tail -10原创 2021-05-14 11:10:28 · 4389 阅读 · 0 评论 -
Hive插入动态分区
在HIVE中,有时候我们需要根据动态分区插入数据,默认情况下,动态分区是关闭的,这个时候执行SQL会报错,这里我们简单记录如何设置动态分区。-- overwriteinsert overwrite table XXX partition(report_date)select XXX, report_date from XXX where report_date>='20200701' and report_date <= '20200930';set hive.exec.dyna原创 2020-12-17 11:16:59 · 2914 阅读 · 0 评论 -
hive增加字段后 FilterPredicate column
参考:https://support.huawei.com/enterprise/zh/knowledge/EKB1000805922问题描述某客户在beeline中执行hive查询语句报错,报错如下处理过程1.查看任务日志,发现如下报错Caused by: java.lang.IllegalArgumentException:FilterPredicate column: dt_par's declared type (java.lang.Long) doe...原创 2020-09-03 12:50:17 · 289 阅读 · 0 评论 -
hive修改字段名后数据丢失
1. 内部表Parquet测试CREATE TABLE `test.user_active_all_parquet_inner`(`imp_date` date COMMENT '活跃日期',`user_id` string COMMENT '用户id')COMMENT '用户每日活跃列表'PARTITIONED BY (`dt` string)stored as parquethive.exec.dynamic.partition.mode=nonstric;insert into .原创 2020-08-23 19:07:22 · 1665 阅读 · 0 评论 -
Hive修改与字段名后Spark读取不到字段
方案一:前提是有元数据库的权限问题重现(例)当我将数据存储格式改变,或者增加一列的时候,我习惯使用了alter table add …来实现原来的表:ALTER TABLE test ADD COLUMNS (weight STRING) CASCADE1加上一列weight字段后(这里使用cascade就是为了同步到hivemetastore),我用spark向表插入一个带有weight字段的表,此时抛出异常Exception in thread "main" org.原创 2020-08-14 11:43:21 · 1983 阅读 · 0 评论 -
Hive的几种常见压缩格式(ORC,Parquet,Sequencefile,RCfile,Avro)的读写查询性能测试
一.测试背景工作中想把历史的APP日志结构化到Hive中进行查询,由于数据较大,需要进行压缩,根据Hive官方提供的几种压缩格式分别进行写入,读取,OLAP计算的性能测试,以求找到最好的压缩格式。二.测试方法概述数据来源:采用生产上数据抽样,大小为100G。原始日志格式为textfile文件(标准JSON)。 测试平台:公司Ambari测试平台,物理内存100G。 测试方法:将textfile文件通过脚本自动录入到Hive里,形成大表。(注:解析JSON数据的serde使用 hd..原创 2020-07-29 15:10:55 · 875 阅读 · 0 评论 -
Hive常用修改命令
Alter Table 语句Hive修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。 ALTER TABLE name RENAME TO new_name ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) ALTER TABLE name DROP [COLUMN] column_name .原创 2020-06-04 18:02:37 · 1570 阅读 · 0 评论 -
Hive乱码解决方案
Hive注释中文乱码创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码create external table movie(userID int comment '用户ID',movieID int comment '电影ID',rating int comment '电影评分',timestamped bigint comment '评...原创 2020-04-18 23:26:52 · 1098 阅读 · 1 评论 -
spark 读取ORC文件时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案
1、背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式。查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop/nn01/warehouse/…….db/……/partition_date=2017-11-11/part-06999 -files -blocks;stripe个数查看命令...原创 2020-04-14 10:38:25 · 1304 阅读 · 0 评论 -
在hive中执行sql语句:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException:
hive> show databases;FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMe...原创 2020-02-10 11:40:11 · 236 阅读 · 0 评论 -
在hive中执行sql语句:SemanticException org.apache.hadoop.hive.ql.metadata.HiveException:
hive> show databases;FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMe...原创 2020-01-05 15:02:45 · 632 阅读 · 0 评论 -
Hive读时模式
hive读时模式:1.传统的关系型数据库在进行数据加载时,必须验证数据格式是否符合表字段定义,如果不符合,数据将无法插入至数据库表中。这种模式称为“写时模式”。2.hive中,数据加载过程采用“读时模式”,加载数据时不进行校验,读取数据时如果不合法的是NULL...原创 2019-12-11 15:22:56 · 598 阅读 · 0 评论 -
hive优化
1、环境方面:服务器配置、容器的配置、环境搭建2、具体的软件配置参数:3、代码级别的优化:目录1、环境方面:服务器配置、容器的配置、环境搭建2、具体的软件配置参数:3、代码级别的优化:2、join3、limit的优化:4、本地模式:5、并行执行:6、严格模式:7、map和reduce 个数:8、配置jvm重用:9、数据倾斜:10、索引11、视图...原创 2019-04-04 14:51:53 · 112 阅读 · 0 评论 -
hive中的排序函数使用
求每次考试的最高分、最低分first_valuelast_valueselectdt,first_value(score) over(distribute by dt sort by score desc) as maxscore,last_value(score) over(distribute by dt sort by score desc) as minscorefrom s...原创 2019-04-04 15:32:52 · 307 阅读 · 0 评论 -
星型模型和雪花模型在数据仓库与数据集市中的使用
(比较长,后面的使用总结更精彩)数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型的概念。一.销售数据仓库星型模型如下:星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。这也是我们在使用hive...转载 2019-03-23 16:54:09 · 1334 阅读 · 0 评论 -
数据仓库构建六步
数据仓库是面向主题的、集成的、不可更新的、随时间的变化而不断变化的,这些特点决定了数据仓库的系统设计不能采用同开发传统的OLTP数据库一样的设计方法。数据仓库系统的原始需求不明确,且不断变化与增加,开发者最初不能确切了解到用户的明确而详细的需求,用户所能提供的无非是需求的大的方向以及部分需求, 更不能较准确地预见到以后的需求。因此,采用原型法来进行数据仓库的开发是比较合适的,因为原型法的思想是从...转载 2019-03-23 16:03:11 · 776 阅读 · 0 评论 -
Hive,Hive on Spark和SparkSQL区别
Hive on MapreduceHive的原理大家可以参考这篇大数据时代的技术hive:hive介绍,实际的一些操作可以看这篇笔记:新手的Hive指南,至于还有兴趣看Hive优化方法可以看看我总结的这篇Hive性能优化上的一些总结Hive on Mapreduce执行流程执行流程详细解析:Step 1:UI(user interface) 调用 executeQuery 接口...转载 2019-03-26 13:34:17 · 369 阅读 · 0 评论 -
Hive窗口分析函数
https://blog.csdn.net/guohecang/article/details/51582242http://blog.itpub.net/22207394/viewspace-1154123/https://blog.csdn.net/guohecang/article/details/51582242一、窗口函数简介:目录一、窗口函数简介:二、窗口函数示...原创 2019-04-04 15:12:24 · 1133 阅读 · 0 评论 -
大数据调优总结
目 录12.1配置原则如何发挥集群最佳性能影响性能的因素12.2Manager12.2.1提升Manager配置服务参数的效率12.2.2根据集群节点数优化Manager配置12.3HBase12.3.1提升BulkLoad效率12.3.2提升连续put场景性能12.3.3Put和Scan性能综合调优12.3.4提升实时写数据效率1...原创 2019-04-01 09:50:55 · 2205 阅读 · 0 评论 -
Hive之行转列-合并多列-列转行
行转列:collect_list(不去重) collect_set(去重)它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重concat_ws(',',collect_set(column))做简单的实验加深理解,创建一张实验用表,存放用户每天点播视频的记录: 1 2 3 4 5...原创 2019-03-28 09:21:33 · 13256 阅读 · 0 评论 -
Hive数据倾斜及解决方案
1.产生原因:1.1原因:1)、key分布不均匀2)、业务数据本身的特性3)、建表时考虑不周4)、某些SQL语句本身就有数据倾斜1.2表现:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。单一reduce的记录数与平均记录数差异过大...原创 2019-04-02 14:42:14 · 221 阅读 · 0 评论 -
spark2.0将hive运算结果保存到数据库
package com.gm.hive.SparkHive; import org.apache.spark.sql.Dataset;import org.apache.spark.sql.Row;import org.apache.spark.sql.SaveMode;import org.apache.spark.sql.SparkSession;import java.util...原创 2019-04-03 01:39:42 · 527 阅读 · 0 评论 -
MapReduce使用combiner优化性能读写Hbase
当MapReduce模型中,reduce执行的任务为统计分类类型的值总量或去重后的数量,或最大值最小值时,可以考虑在Map输出后进行combine操作;这样可以减少网络传输带来的开销,同时减轻了reduce任务的负担。Combine操作是运行在每个节点上的,只会影响本地Map的输出结果;Combine的输入为本地map的输出结果(一般是数据在溢出到磁盘之前,可以减少IO开销),其输出则作为red...转载 2019-04-03 11:09:25 · 232 阅读 · 0 评论 -
几条复杂的SQL语句
-- 特别注意:MySQL中 没有datepart ,可以使用 cast或者其他的转换https://mp.csdn.net/postedit/86177225表结构:CREATE TABLE [dbo].[Exam]( [S_date] [datetime] NOT NULL, [Order_Id] [varchar](50) NOT NULL, [Produc...原创 2019-04-03 16:20:29 · 335 阅读 · 0 评论 -
Git版本工具的安装与使用
1,git (版本管理工具) 2,论坛日志分析系统BBS Flume + Kafka + Java API + HBase + Hive + Sqoop + MySQL 3,面试经验的分享====>主题:git (版本管理工具)~~>版本管理工具:项目组中各个成员进行资源的共享,管理的平台。(资源仓...原创 2019-05-04 22:49:11 · 2172 阅读 · 1 评论 -
大数据项目分析
本文来自携程技术中心基础业务研发部的《应用架构涅槃》系列分享。据基础业务研发部负责人李小林介绍,互联网二次革命的移动互联网时代,如何吸引用户、留住用户并深入挖掘用户价值,在激烈的竞争中脱颖而出,是各大电商的重要课题。通过各类大数据对用户进行研究,以数据驱动产品是解决这个课题的主要手段,携程的大数据团队也由此应运而生;经过几年的努力,大数据的相关技术为业务带来了惊人的提升与帮助。以基础大数据的用户...转载 2019-03-29 21:15:13 · 465 阅读 · 2 评论