查看/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服务。