Hive DDL报错For direct MetaStore DB connections, we don’t support retries at the client level.

当在Hive中创建表的时候报错:

create table test(name string, addrstring) row format delimited fields terminated by '\t';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)

这是由于Mysql字符集的问题,需要配置MySQL的字符集:

在MySql中执行(注意将mysql的数据库修改为自己的):

alter database hive character set latin1;

当启动Hive的时候报错:

Caused by: javax.jdo.JDOException: Couldnt obtain a new sequence (unique id) : Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
NestedThrowables:
java.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.

这个问题是由于hive的元数据存储MySQL配置不当引起的,可以这样解决:

在MySql中执行:

 set global binlog_format='MIXED';

问题解决!

你可能感兴趣的:(大数据,大数据踩过的坑)