
Hive
数据源的港湾
这个作者很懒,什么都没留下…
展开
-
Hive metastore启动报错The specified datastore driver(“com.mysql.jdbc.Driver“) was not found in the CLASS
现象某集群有两个Hive metastore,其中一个正常运行,另一个启动报错,报错的Hive metastore日志报错信息如下,上午9点56:55.875分 WARN HiveMetaStore [main]: Retrying creating default database after error: Error creating transactional connection factoryjavax.jdo.JDOFatalInternalException: Error creati原创 2020-11-04 10:44:23 · 1347 阅读 · 0 评论 -
Hive 快速查询DB下的表及行数
Hive的元数据信息存储在元数据库里面,因此可以通过元数据库来快速统计表及数据量的情况,这里以元数据库为MySQL为例,可以通过以下SQL命令快速获取,select c.NAME, a.TBL_NAME, b.PARAM_KEY, b.PARAM_VALUE from hive.TBLS as a join hive.TABLE_PARAMS as b join hive.DBS c where a.TBL_ID = b.TBL_ID and a.DB_ID = c.DB_ID and c.NAME I原创 2020-07-14 14:29:54 · 4881 阅读 · 0 评论 -
CDH HIVE报错引发的一系列血案
今天偶尔发现一个CDH集群中的Hive MetaStore Server发生了异常,于是检查相关日志,具体日志为Hive MetaStore Server所在节点的/var/log/hive/hadoop-cmf-hive-HIVEMETASTORE-sbh01.esgyn.cn.log.out,日志报错如下,2019-10-31 06:22:51,467 INFO org.apache.ha...原创 2019-11-02 15:06:20 · 1959 阅读 · 0 评论 -
Hive 使用TEZ引擎导致连接Hive SHELL慢的问题
在使用HDP Hadoop版本时,Ambari界面允许选择Hive执行引擎是MapReduce还是TEZ,如下图所示 使用TEZ作为Hive执行引擎来替代MapReduce,可以在很多场景上实现更好的效率提高,然后使用TEZ作为默认引擎也会导致一些问题。最近就碰到这样的场景,客户使用TEZ作为执行引擎,在计算过程中确实比使用默认的MapReduce快很多,但遇到的一个问题是:每次总要花10~...原创 2018-07-06 11:26:03 · 4081 阅读 · 0 评论 -
Hive查看表中文注释乱码问题
现象Hive使用show create table查看表结构,发现中文注释乱码,包括普通字段及分区字段。解决这是由于Hive元数据库跟注释相关的字段的编码不是UTF8类型,解决方法为登陆到元数据库中执行以下查看及修改命令,select table_collation from information_schema.tables where table_name in ('CO...原创 2018-07-12 16:33:33 · 4261 阅读 · 0 评论 -
Hive使用TEZ执行count(*)结果不正确
现象Hive使用TEZ作为默认的执行引擎,当表插入完记录后,count()得到的结果与实际的记录数不一致,如果使用MR作为执行引擎来执行count(),结果与实际记录数一致。解决使用TEZ执行count()十分高效,绕过了MapReduce操作,实际结果不正确,应该是TEZ内部有某种机制count()直接查询统计信息,然后统计信息不是最新的,导致count(*)结果不正确。hi...原创 2018-07-11 12:41:00 · 4697 阅读 · 0 评论 -
Hive on MR/Spark
在当前稍微新一点的Hadoop版本中,都支持Hive跑在Spark上,即使用Spark代替默认的MapReduce作为Hive的执行引擎,假如在已经安装配置好Spark之后,只需要简单地通过“set hive.execution.engine=spark”来切换让Hive跑在Spark之上。首先试验使用默认的MapReduce作为Hive的计算引擎,hive> select count(*) fro原创 2017-12-14 13:53:53 · 3344 阅读 · 0 评论 -
Hive表如何使用多字符分隔
一般情况下,Hive建表指定分隔符使用”row format delimited fields terminated by”语法,以下是一个最简单的例子,hive> create external table t2 (a int, b string) > row format delimited fields terminated by '|' > location '/user/h原创 2017-12-19 17:39:27 · 3385 阅读 · 2 评论 -
CDH5 配置LZO
本文通过实例讲述在CDH5下面配置LZO压缩的过程,1 下载parcel(选择合适的版本),下载地址: http://archive-primary.cloudera.com/gplextras/parcels/latest/ ;下载.parcel文件及manifest.json文件,下载完成后在manifest.json中找到对应的hash值并写到.parcel.sha文件[root@cent-1原创 2017-01-09 11:39:44 · 2301 阅读 · 0 评论 -
Hive Load命令
本文主要是翻译Hive官网关于Load的解释,原文来源于:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Loadingfilesintotables介绍Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址。语法LOAD原创 2017-03-17 14:02:58 · 17688 阅读 · 0 评论 -
Hive Show命令
Show databases语法SHOW (DATABASES | SCHEMAS) [LIKE 'identifier'];举例hive> show databases;OKdefaulttpcds_parquetTime taken: 1.7 seconds, Fetched: 3 row(s)hive> show schemas;OKdefaulttpcd原创 2017-03-21 09:49:12 · 26412 阅读 · 0 评论 -
Hive Beeline
Beeline是Hive 0.11引入的新的交互式CLI,基于SQLLine,可以作为Hive JDBC Client端访问Hive Server2,启动一个Beeline就是维护一个session。 Hive Server1中我们习惯了用Hive CLI,方式如下,[trafodion@n12 udr]$ hiveOpenJDK 64-Bit Server VM warning: ignori原创 2017-03-10 15:27:27 · 2265 阅读 · 0 评论 -
Hive Insert命令
Hive 加载数据主要有两种方式,一种是用Load直接加载文件,可以是从本地文件系统,也可以是从HDFS文件系统;Load方式不做任何的转换,只是纯粹的文件复制移动,关于Load加载详情,请见我的另一篇文章: http://blog.youkuaiyun.com/post_yuan/article/details/62883565除了Load加载数据,Hive也支持Insert命令,下面就来详细介绍Hive不同原创 2017-03-17 15:52:17 · 72027 阅读 · 5 评论 -
Hive 基本命令
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-11-15 12:24:08 · 3046 阅读 · 0 评论