您的位置:首页 > 其它

hive的Specified key was too long; max key length is 767 bytes问题解决

2011-12-06 12:33 591 查看
上次安装hive时遇到很多问题,最后遗留下一个没有解决的问题,最后通过询问得以解决在这记录下:方便遇到同样问题的人:

问题阐述

在安装完hive后,执行:

[root@localhost hive]# hive
Hive history file=/tmp/root/hive_job_log_root_201112071228_90457717.txt
hive>
创建表:

hive>  CREATE TABLE test ( time string, ip string, url string);
OK
Time taken: 0.303 seconds
删除表报错:

NestedThrowables:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask


解决方法:

一般是由于mysql的最大索引长度导致,看了一个人的文章颇有感触下面给出链接:

http://blog.csdn.net/cindy9902/article/details/6215769

解决方法如下:

1、数据库的字符集除了system为utf8,其他最好为latin1,否则可能出现如上异常。

2、set global binlog_format='MIXED';READ-COMMITTED需要把bin-log以mixed方式来记录

改完上述两种方法后,我还是会出现以上问题,我把mysql的metastore_db里面的所有表删除,hadoop重启,然后重新启动hive之后就能够正常删除表了。

问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐