博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive创建分区表问题
阅读量:2395 次
发布时间:2019-05-10

本文共 897 字,大约阅读时间需要 2 分钟。

最近在使用hive的时候,metadata我是放在mysql(是5.5的版本)里的。

当时mysql设置的字符集是utf8,

正常创建表的时候,一切正常,当我进行创建分区表后,在使用的时候,就出现以下错误信息:

FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were found while auto-creating/validating the datastore for classes. The errors are printed in the log, and are attached to this exception.

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

以上错误,主要是在select操作、drop操作时,就会出错。

这里提醒下,创建分区表,需要执行alter table 表名 add  PARTITION(stat_date='2011-06-08', province='ZheJiang')这样的SQL语句。

然后才能导入数据。不然就有如下报错信息:

FAILED: Error in semantic analysis: Line 3:10 Partition not found ''2011-12-30''

转回主题来,解决的方案:

是将mysql的数据库字符集设置成latin1,就行了(网上有很多修改字符集的操作,这里就不详细说了)。

修改数据库的字符集
    mysql>use mydb
    mysql>alter database mydb character set latin1;

转载地址:http://nvzob.baihongyu.com/

你可能感兴趣的文章
Listener--HttpSessionActivationListener(钝化、活化)API、配置和使用详解
查看>>
Filter--过滤器Filter概述、API、配置与使用详解
查看>>
Web--使用Filter和Cookie实现自动登录
查看>>
Web--Filter使用装饰器模式解决全站中文乱码问题
查看>>
JS--JavaScript入门(script标签使用与外部JavaScript文件引入)
查看>>
JS--JavaScript语句(表达式语句、语句块、条件语句if、switch)详解
查看>>
Struts2--非表单标签
查看>>
MyBatis--工作原理
查看>>
MyBatis--基础环境搭建
查看>>
UML--构件图详解
查看>>
UML--部署图详解
查看>>
MyBatis--SqlSessionFactory概述及创建方式
查看>>
MyBatis--核心组件:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和SQL Mapper
查看>>
MyBatis--单表增删改查
查看>>
MySQL--基础三(条件查询)
查看>>
Maven--依赖配置和依赖范围
查看>>
Maven--排除依赖、归类依赖和优化依赖
查看>>
Maven--插件的获取和配置
查看>>
MySQL--基础四(排序查询)
查看>>
MySQL--基础五(单行函数)
查看>>