Hive连接超长Hbase宽表异常
2019独角兽企业重金招聘Python工程师标准>>>
我们用Hive去连接一个Hbase款表,大概有150多个字段。
因此,就报了异常:
FAILED: Error in metadata: MetaException(message:javax.jdo.JDODataStoreException: Put request failed : INSERT INTO `SERDE_PARAMS` (`PARAM_VALUE`,`SERDE_ID`,`PARAM_KEY`) VALUES (?,?,?)
NestedThrowables:
org.datanucleus.store.mapped.exceptions.MappedDatastoreException: INSERT INTO `SERDE_PARAMS` (`PARAM_VALUE`,`SERDE_ID`,`PARAM_KEY`) VALUES (?,?,?) )
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
后来翻了墙,查了谷歌度娘,发现了原因。
在hive元数据中,存放serde信息的是一个varchar(4000)的字段,为了兼容oracle。
但是超过4000个字段怎么办?
目前使用的是mysql数据库,解决方法是将字段扩充成30000如下:
mysql> desc SERDE_PARAMS;
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| SERDE_ID | bigint(20) | NO | PRI | NULL | |
| PARAM_KEY | varchar(256) | NO | PRI | NULL | |
| PARAM_VALUE | varchar(4000) | YES | | NULL | |
+-------------+---------------+------+-----+---------+-------+
3 rows in set (0.03 sec)
mysql> alter table SERDE_PARAMS modify column PARAM_VALUE varchar(30000);
Query OK, 447 rows affected (0.86 sec)
Records: 447 Duplicates: 0 Warnings: 0
mysql> desc SERDE_PARAMS;
+-------------+----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------------+------+-----+---------+-------+
| SERDE_ID | bigint(20) | NO | PRI | NULL | |
| PARAM_KEY | varchar(256) | NO | PRI | NULL | |
| PARAM_VALUE | varchar(30000) | YES | | NULL | |
+-------------+----------------+------+-----+---------+-------+
3 rows in set (0.08 sec)
异常解决。
但是只能暂时解决MySQL库中的问题,加入元数据存在其他库,则还会存在这样的问题。
转载于:https://my.oschina.net/dacoolbaby/blog/353001
Hive连接超长Hbase宽表异常相关推荐
- HBase 宽表和高表
一.宽表和高表定义 HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table): 宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数 ...
- hbase宽表和高表以及优缺点
hbase宽表和高表以及优缺点 hbase的row key是分布式的索引,也是分片的依据. 在HBase中使用宽表.高表的优劣总结如下: 查询性能 分片能力 元数据开销 事务能力 数据压缩比 小结 宽 ...
- hbase查看表结构_HBase 与Hive的集成
HBase与Hive的对比 Hive 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询. 用于数据分析.清洗 Hive适用于离线 ...
- Hive与Hbase数据表关联
一.简单介绍 hive的元数据保存在metastore里面,真实的数据一般位于hdfs中,可以通过hql来对数据进行分析.hbase中的数据也是存放在hdfs上的,可不可以使用hive来分析hbase ...
- hive创建hbase外部表
hive 启动命令:$HIVE_HOME/bin/hive hive 创建hbase外部表: ihr_pes为hive表名: CREATE EXTERNAL TABLE ihr_pes( id str ...
- HBase的高表和宽表
HBase的高表和宽表 hbase中的宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数少:高表是指很多行较少列,即行多列少,一行中的数据量较少,行数大. hbase的row key是分布 ...
- spark读取hive表异常,处理WARN HiveExternalCatalog: The table schema given by Hive metastore
文章目录 1 问题概述 1.1 数据库表状况 1.2 问题背景 2 报错场景 2.1 修改Hive元数据信息 2.2 报错信息 2.3 其他现象 2.4 查看表结构时的发现 2.5 报错分析 2.6 ...
- 企业级数据仓库:数据仓库概述;核心技术框架,数仓理论,数据通道Hive技术框架,HBase设计,系统调度,关系模式范式,ER图,维度建模,星型/雪花/星座模式,数据采集同步,业务数据埋点,数据仓库规范
文章目录 第一章 数据仓库概述 1.1 数据仓库简介 1.1.2 什么是数据仓库? 1.1.3 OLTP 与 OLAP 1.2 数据仓库技术架构 1.3 课程目标 第二章 核心技术框架 2.1 数据仓 ...
- hive上亿级别的表关联 调优
环境:公司决定使用宽表,将10个相关的大表进行全量关联 (1个上亿级别的表,5个上千万的表,剩下的表都不到百万的表) 花了两天的时间研究,测试 例如: a~g这几个表中,a表为上亿级别的表,5个上千万 ...
最新文章
- LeetCode简单题之最小操作次数使数组元素相等
- C 的大致运行原理。
- oracle 如何添加数据文件,Oracle教程 误添加数据文件删除方法
- JavaScript的时钟小程序
- idrmyimage 技巧_王者荣耀公孙离2000场-心得技巧,教你究极进阶!
- Github注册过程以及对管理软件的了解
- 为什么 APP 纷纷开发“暗黑模式”?优酷最佳实践总结
- 绘制课本中的根轨迹图与零极点分布图
- Chapter 3 Phenomenon——19
- Java SE 8新功能导览:Java开发世界中的重大变化
- 还原特别慢_正手攻球最容易忽略的一步——还原
- vba excel 退出编辑状态_偷梁换柱之EXCEL编辑保护和VBA隐藏代码保护的解锁
- 计算几何之凸包_卷包裹算法
- [Linux] BASH程序设计
- 大量数据table_一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms)
- 史上最全的统计学基础知识!错过这次再等一年!!
- (Excel)常用函数公式及操作技巧之六:汇总计算与统计(一)
- Matlab 中类的定义
- c++设计某小型公司的 employee(人员)类
- Web前端业界氛围极好的群——鬼懿IT
热门文章
- 设计模式学习笔记 1.介绍
- 堆栈和堆得区别与垃圾回收
- 属性总结(三):plt.rcParams
- error while loading shared libraries: libatomic.so.1
- 剖析——移动构造函数
- JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因
- 居民身份证号码组成规则
- 制作win7+ubuntu +winPE+CDlinux多系统启动U盘
- [WPF系列]-Deep Zoom
- 返回值与返回引用的问题