hive 启动metastore服务自动建表报Specified key was too long; max key length is 767 bytes

本文介绍了解决Hive元数据表主键字段长度过长导致的问题的方法。通过更改数据库字符集为latin1,可以避免UTF-8编码下主键长度超过限制的情况。文章详细记录了停止服务、删除并重建hive库、修改字符集等步骤。

查看/tmp/${user}/hivemetastore.log日志,发现报错的表的create语句的主键字段的长度为256,

从报错提示来看,就是说主键太长了,查看hivemeta库的其他表的字符类型,发现为UTF-8,

这就很明白了,为什么报错?因为256*3=768>767。

查询其他资料,把数据库的字符集改为latin1可以解决问,我这次是初始化,meta库还没有数据,

用下面的方式可以快速解决问题

1、停止metastore服务

#!/bin/bash
pid=`ps -ef|grep HiveMetaStore|grep -v "grep"|awk '{print $2}'`

kill -9 $pid

2、删除已经创建的hive库 drop database hive;

3、手工创建hive库 create database hive;

4、修改hive库的字符集  use hive;alter database hive character set latin1;

5、重新启动hive的metastore服务。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值