create table tableName (name string);报错
Specified key was too long; max key length is 767 bytes 长度的问题。
hive> create table t1 ( name string ) ;
Moved: ‘hdfs://cxzdy:9000/user/hive/warehouse/t1’ to trash at: hdfs://cxzdy:9000/user/root/.Trash/Current
Moved: ‘hdfs://cxzdy:9000/user/hive/warehouse/t1’ to trash at: hdfs://cxzdy:9000/user/root/.Trash/Current
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytes
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)省略…
度娘上的解决方案大多都是:
在mysql机器的上运行: alter database hive character set latin1;
起初还以为这是BUG的最终解决方案,后来在windows的mysql上执行提示
错误码: 1
Can’t create/write to file ‘.\hive\db.opt’ (Errcode: 2 - No such file or directory)
只需要执行:
alter database 库名 character set latin1;