![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HIVE
文章平均质量分 77
玉羽凌风
这个作者很懒,什么都没留下…
展开
-
Hive on Tez 中 Map 任务的数量计算
Hive on Tez Mapper数量计算在Hive中执行一个query时,我们可以发现Hive的执行引擎在使用Tez与MR时,两者生成mapper数量差异较大。主要原因在于Tez中对inputSplit做了grouping操作,将多个inputSplit组合成更少的groups,然后为每个group生成一个mapper任务,而不是为每个inputSplit生成一个mapper任务。下面我们通过日志分析一下这中间的整个过程。1.MR模式在...转载 2021-05-07 10:03:31 · 1356 阅读 · 0 评论 -
hiveServer2、metastore以及client解读
hive服务架构图:Metastore通过Thrift API 对外提供访问,生态里的工具如:pig, MR, impala, presto, SparkSQL, NIFI 都可以通过Thrift接口访问Metastore, Metastore接口格式为:thrift://xxxxxxx:9083HiveServer2对外提供JDBC/ODBC接口,供前端工具(DBeavor, SQL Squirrel, SQL Developer, DBVis)使用, 编程语言如:Python, Scala,转载 2021-02-26 18:16:24 · 1209 阅读 · 0 评论 -
beeline 连hive报Unexpected end of file when reading from HS2 server错误
错误信息:Unexpected end of file when reading from HS2 server. The root cause might be too many concurrent connections. Please ask the administrator to check the number of active connections, and adjust hive.server2.thrift.max.worker.threads if applicable.原原创 2021-01-11 22:49:29 · 4616 阅读 · 0 评论 -
HiveServer2 获取日志
讨论的版本为: HiveServer2 版本 : 2.3.1 + tez由于最近在弄WEBIDE,其中在连接Hiveserver2的时候,在Hiveserver2的获取日志的方式,发现了两个坑,找了许多文献,也没有找到解决的办法。其中一个坑,有一个同事在看到hive的BUG反馈中,看到一些类似情况,解决的。而另外一个坑,是走了很多很多崎岖的路途,一步一步的发现出来的解决办法。1.HIVESERVER 2 没有日志在其他配置(启动日志配置,log4j,等等)都没有别的问题的时候,依..转载 2021-01-11 16:04:25 · 2765 阅读 · 2 评论 -
hive关键字处理方式
Hive的关键字包括Keywords, Non-reserved Keywords and Reserved KeywordsKeywordsADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,AUTHORIZATION,BEFORE,BETWEEN,BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,BY,CASCADE,CASE,CAST,CHANGE,CHAR,CLUSTER,CLUST原创 2020-09-16 23:21:57 · 3390 阅读 · 1 评论 -
yarn里有大量的短暂killed的hive任务问题排查
问题:我们用AWS EMR的时候发现在yarn的application manager ui里有大量killed的hive任务,而且非常之多,如截图所,我们是通过hive server2方式提交任务的:解决方案:首先想到的是不是有什么进程在不断的捣鬼,后来grep 下所有hive进程,将该杀的都杀了之后,并没有什么特殊的异常进程,但是在grep的瞬间有遇到类似如下的命令:bash /usr/lib/hive/bin/hive -e show PARTITIONS mytable因为我们的..原创 2020-06-28 23:39:30 · 1232 阅读 · 0 评论 -
hive-site.xml 参数设置
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agre...原创 2020-03-26 19:03:41 · 3567 阅读 · 0 评论 -
通过Hive JDBC提交的查询, 如何获取其在Yarn上的Application ID
数据平台上需要封装Hive查询,只提供API给业务方使用,代码中通过Hive JDBC完成将查询语句向Hive提交,等待执行完成,结果解析的功能.用户提交查询之后意识到查询语句错误(非语法错误),不想等待错误的语句执行完成后再次提交. 由于用户没有yarn client的权限,kill task的操作也需要通过API提供,因此在提交查询语句时需要获取其在Yarn上的Application Id....转载 2020-02-25 16:16:43 · 4338 阅读 · 0 评论 -
hive server日志配置
HiveServer2操作日志可用于Beeline客户端(Hive 0.14以上)。这些参数配置记录:hive.server2.logging.operation.enabledhive.server2.logging.operation.log.locationhive.server2.logging.operation.verbose (Hive 0.14到1.1)hive.serv...原创 2020-02-25 15:20:12 · 3555 阅读 · 0 评论 -
Hive用户权限管理理解
HiverServer2支持远程多客户端的并发和认证,支持通过JDBC、Beeline等连接操作。hive默认的Derby数据库,由于是内嵌的文件数据库,只支持一个用户的操作访问,支持多用户需用mysql保存元数据。现在关心的是HiveServer如何基于mysql元数据库管理用户权限,其安全控制体系与Linux及Hadoop的用户是否存在联系。1)remote方式部署HiveHive中m...转载 2020-02-10 15:53:46 · 553 阅读 · 0 评论 -
hadoop作业reduce过程调优使用到的参数笔记
reduce的运行是分成三个阶段的。分别为copy->sort->reduce。由于job的每一个map都会根据reduce(n)数将数据分成map 输出结果分成n个partition,所以map的中间结果中是有可能包含每一个reduce需要处理的部分数据的。所以,为了优化reduce的执行时间,hadoop中是等job的第一个map结束后,所有的reduce就开...转载 2020-02-07 22:42:02 · 453 阅读 · 0 评论 -
Hive analyze命令解析
关于Hive analyze命令1. 命令用法:表与分区的状态信息统计ANALYZE TABLE tablename[PARTITION(partcol1[=val1], partcol2[=val2], ...)]COMPUTE STATISTICS [noscan];列信息统计ANALYZE TABLE tablename[PARTITION(partcol1[=val1], ...转载 2020-02-06 00:08:34 · 2878 阅读 · 0 评论 -
Improving Hive Performance with S3/ADLS/WASB
Tune the following parameters to improve Hive performance when working with S3, ADLS or WASB.Table7.1.Improving General PerformanceParameter Recommended Setting yarn.scheduler.capacity.n...转载 2020-02-05 23:36:52 · 234 阅读 · 0 评论 -
如何加速hive msck?
You can increase the value of thehive.metastore.fshandler.threadsparameter to increase the number of threads used for scanning the partitions in the MSCK phase (defaut is 15). This will speed up loa...原创 2020-02-05 23:32:37 · 545 阅读 · 0 评论 -
Using a single hive warehouse for all EMR(Hadoop) clusters
s the EMR/Hadoop cluster’s are transient, tracking all those databases and tables across clusters may be difficult. So, Instead of having different warehouse directories across clusters, You can use a...转载 2020-02-04 23:44:33 · 175 阅读 · 0 评论 -
hive server 2 crashing with OutOfMemoryError (OOM) ?
ften times HiveServer2 can be single point of failure. It can easy crash with OOM. If HiveServer2 restarts now-and-then , it must be due to OOM where it is likely set to be killed and re-spawned. We n...转载 2020-02-04 23:41:18 · 2688 阅读 · 0 评论 -
hive tez模式设置queuename队列名
hive --hiveconfmapreduce.job.queuename=xxx --hiveconfhive.server2.map.fair.scheduler.queue=false原创 2019-12-03 16:03:34 · 5346 阅读 · 2 评论 -
Hive MetaStore常用的元数据在Mysql中对应的表
1、Hive中databases的信息-》DBS字段关联,以及表TBL_ID(TBLS)-> SD_ID(SDS)-> CD_ID(CDS)-> SERDE_ID(SERDES)XMLCopy元数据表字段 说明DB_ID 数据库IDDESC 数据库描述DB_LOCATION_URI 数据库HDFS路径NAME 数据库名OWNER_NAME 数据库所有者用户名O...转载 2019-11-18 22:23:24 · 1178 阅读 · 0 评论 -
hive的用户和用户权限
HiverServer2支持远程多客户端的并发和认证,支持通过JDBC、Beeline等连接操作。hive默认的Derby数据库,由于是内嵌的文件数据库,只支持一个用户的操作访问,支持多用户需用mysql保存元数据。现在关心的是HiveServer如何基于mysql元数据库管理用户权限,其安全控制体系与Linux及Hadoop的用户是否存在联系。1)remote方式部署HiveHive中m...转载 2019-11-18 22:13:22 · 1944 阅读 · 0 评论 -
由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考
背景我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求)、调度任务(常规分析需求),两者均通过我们的Web系统进行提交。以前两种类型的任务都被提交至Yarn中一个名称为“hive”的队列,为了避免两种类型的任务之间相互受影响以及并行任务数过多导致“hive”队列资源紧张,我们在调度系统中构建了一...转载 2019-11-16 22:03:24 · 2059 阅读 · 0 评论 -
hive beeline详解
Hive客户端工具后续将使用Beeline替代HiveCLI,并且后续版本也会废弃掉HiveCLI客户端工具,Beeline是Hive 0.11版本引入的新命令行客户端工具,它是基于SQLLine CLI的JDBC客户端。Beeline支持嵌入模式(embedded mode)和远程模式(remote mode)。在嵌入式模式下,运行嵌入式的Hive(类似Hive CLI),而远程模式...转载 2019-11-16 21:51:39 · 3068 阅读 · 0 评论 -
hive的metadata中的表用途说明
在本例中将Hive的metadata存储在mysql中;透彻理解每个表的用途,以及每个表之间是通过什么进行关联,对于用hive用着很大的帮助;Hive的版本不同,表的个数也有可能不同;Hive 1.1是36张表,1.2是35张表;要重点理解的表:VERSIONDBSCDSTBLSCOLUMNS_V2...转载 2019-10-25 16:55:02 · 369 阅读 · 0 评论 -
Hive跨集群迁移
Hive跨集群迁移数据工作是会出现的事情, 其中涉及到数据迁移, metastore迁移, hive版本升级等。1. 迁移hdfs数据至新集群hadoop distcp -skipcrccheck -update hdfs://xxx.xxx.xxx.xxx:8020/user/risk hdfs://xxx.xxx.xxx.xxx:8020/user/-skipcrccheck 因本次迁...转载 2019-10-22 23:50:53 · 396 阅读 · 0 评论 -
hive select count返回负数
今天有同事咨询我一个hive sql的问题,据描述是:在用hive select count(1)的时候返回负数首先基于这种问题,我的初步的判断是由于表较大,计算资源可能不足导致的,后来经过研究发现,hive有个参数:hive.compute.query.using.stats默认值为true,改为false标识不从元数据取值,可计数,但性能较差,让同事执行sethive.compu...原创 2019-10-18 14:11:42 · 2612 阅读 · 0 评论 -
Hive中ObjectInspector的作用
Serde是什么:Serde实现数据序列化和反序列化以及提供一个辅助类ObjectInspector帮助使用者访问需要序列化或者反序列化的对象。Serde层构建在数据存储和执行引擎之间,实现数据存储+中间数据存储和执行引擎的解耦。//主要实现数据的序列化和反序列化。publicabstractclassAbstractSerDeimplementsSerDe{p...转载 2019-09-19 14:44:27 · 895 阅读 · 0 评论 -
Hive UDAF开发--个人补充理解
总结hive的比较难的部分应该就是GenericUDAF,看了两天终于看明白了,有些点是我自己遇到卡住的点,记录下来希望对大家有所帮助。一开始看的是《Hive 编程指南》中关于GenericUDAF的章节,例子有点难了。讲的是group_concat的实现。查了资料后觉得网上写的博客非常好,例子比较简单,更能够明白到底在说什么。一定要结合MapReduce的过程来看,才会想明白。不要...转载 2019-09-19 14:45:54 · 164 阅读 · 0 评论 -
A Complete Guide to Writing Hive UDF
Note that this guide is quite old (it was written when Hive was at version 0.10) and might not apply as-isto recent Hive releases. Use at your own risk :)Dataiku DSSprovides deep integration with ...转载 2019-09-20 21:42:19 · 281 阅读 · 0 评论 -
Spark SQL 相关
Spark SQL的简介1. 简介Spark SQL是用于处理结构化数据的模块。与Spark RDD不同的是,Spark SQL提供数据的结构信息(源数据)和性能更好,可以通过SQL和DataSet API与Spark SQL进行交互。2. 特点2.1 Spark程序和SQL可以无缝对接2.2 统一数据访问:使用相同方式链接到数据2.3 集成hive:在hive数据仓库中可...转载 2019-08-28 22:47:14 · 511 阅读 · 0 评论 -
hive explode
1、hive explode函数可以将一个array或者map展开,其中explode(array)使得结果中将array列表里的每个元素生成一行;explode(map)使得结果中将map里的每一对元素作为一行,key为一列,value为一列,一般情况下,直接使用即可,但是遇到以下情况时需要结合lateral view 使用。1、No other expressions are allowe...原创 2018-09-05 13:55:43 · 9591 阅读 · 1 评论 -
[Hive]编写non-deterministic的UDF时遇到的谓词下推(Predicate pushdown)错误分析
遇到这样一个问题:hive> desc ljn001;OKname stringvalue inthive> select * from ljn001;OKwang5 92zhang3 87li4 73然后我想使用UDF实现的分析函数row_number去查询value最小的name。如果不清楚UDF实现row_number的原...转载 2019-09-17 15:29:02 · 606 阅读 · 0 评论 -
Hive 通过关闭CBO (Cost based Optimizer) 来优化特定的SQL执行
Hive 自0.14.0开始,加入了一项”Cost based Optimizer”来对HQL执行计划进行优化,这个功能通过”hive.cbo.enable”来开启。在Hive 1.1.0之后,这个feature是默认开启的,它可以自动优化HQL中多个JOIN的顺序,并选择合适的JOIN算法Join reordering and join algorithm selection are few...转载 2019-09-17 15:20:37 · 1609 阅读 · 0 评论 -
在hue当中设置hive当中数据库的控制权限
这段时间在搞大数据的集群搭建工作,并且安装了hive的服务,但是没有对其中的数据库的操作权限做限制,每个人都可以对数据库进行增删改查。今天有空做了一下了对hive数据库当中的数据库做一些限制。我们都是在hue的客户端进行操作hive当中的数据库。操作如下:(1)在hue界面创建登录用户:(2) 配置hive权限控制<property><n...转载 2019-03-03 17:06:26 · 1725 阅读 · 0 评论 -
HCatalog - Quick Guide
HCatalog - IntroductionWhat is HCatalog?HCatalog is a table storage management tool for Hadoop. It exposes the tabular data of Hive metastore to other Hadoop applications. It enables users with di...转载 2019-01-10 23:10:48 · 957 阅读 · 0 评论 -
hive 中解析json
hive中解析json常用的方式按效率由低到高有三种:regexp_extract get_json_object json_tupledemo数据:set hivevar:person={"name":"amos","sex":"man","age":32};1.regexp_extract 解析,这种方式很不友好,需要数据有固定的格式select regexp_ext...原创 2018-11-30 15:13:05 · 1332 阅读 · 0 评论 -
hive skills
1.with as 使用 + 求占比with sale as(select 'a' as department_id,'001' as item_id,100 as money union allselect 'a' as department_id,'002' as item_id,200 as money union allselect 'b' as department_id,'...原创 2018-10-31 22:40:57 · 218 阅读 · 0 评论 -
spark sql 支持多级目录
当表的分区有子目录时,spark sql默认是不支持的,可以用以下设置:在hive cli里直接set mapreduce.input.fileinputformat.input.dir.recursive=true;就可以正常使用spark sql引擎在代码层面可以尝试.set("spark.hive.mapred.supports.subdirectories","true").s...原创 2018-10-26 13:59:04 · 2576 阅读 · 0 评论 -
Hive SQL运行状态监控(HiveSQLMonitor)
引言 目前数据平台使用Hadoop构建,为了方便数据分析师的工作,使用Hive对Hadoop MapReduce任务进行封装,我们面对的不再是一个个的MR任务,而是一条条的SQL语句。数据平台内部通过类似JDBC的接口与HiveServer进行交互,仅仅能够感知到一条SQL的开始与结束,而中间的这个过程通常是漫长的(两个因素:数据量、SQL复杂度),某些场景下用户需要了解这条SQL语句的执...转载 2018-10-05 22:42:16 · 7156 阅读 · 0 评论 -
hive sql 小记
1.每周的第一天:select date_sub(from_unixtime(date_time+8*3600,'yyyy-MM-dd'),pmod(datediff(from_unixtime(date_time+8*3600,'yyyy-MM-dd'),'1900-01-08'),7));如果需要将每周的第一天改为周日,则将1900-01-08 换成1900-01-07即可2.每月第一天:se...原创 2018-01-25 16:48:13 · 233 阅读 · 0 评论 -
Spark SQL 之 Join 实现
Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的。SparkSQL总体流程介绍在阐述Join实现之前,我们首先简单介绍SparkSQL的总体流程,一般地,我们有两种方式使用Spar转载 2017-11-16 15:36:37 · 1583 阅读 · 0 评论 -
获取分组后取某字段最大的一条记录(求每个类别中最大的值的列表)
获取分组后取某字段最大一条记录方法一:(效率最高)select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type );方法二:(效率次之)select a.* from test a,(select type,m转载 2017-11-15 17:20:00 · 37116 阅读 · 8 评论