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个上千万 ...
最新文章
- Ansible免密码登陆
- 正面管教PHP交流互助会,父母的心态决定孩子的状态/慧育家正面管教家长讲师认证班...
- springboot整合servlet
- LeetCode 505. 迷宫 II(BFS / Dijkstra 最短路径)
- 程序员都长得丑?颜值底线是程序员?
- 修改map.html,HTML map 标签 | 菜鸟教程
- svn更换url地址怎么办
- Anconda之常用命令汇总
- C#实现WebService服务 项目完整总结
- react ajax组件,javascript – 我可以将ajax放在React组件构造函数中吗?
- VirtualBox6.0安装及配置
- 基于DEAP库的python进化算法-4.遗传算法求解TSP问题
- 算法习题---4-5IP网络(Uva1590)
- FZU 2037 Maximum Value Problem【递推】
- 2022茶艺师(初级)试题及在线模拟考试
- 文档在线翻译网站汇总
- Docker-Toolbox常见问题解决方案
- Spark之SparkSQL和DataFrame
- copy复制的时候提示y
- pr调整图层java,glm`prepected()`错误:没有适用于'predict'的方法应用于类“list”的对象...