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

上次安装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之后就能够正常删除表了。

问题解决。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值