Hive 问题汇总

1 Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT…

当启动Hive的时候报错:java

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.
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

这个问题是因为hive的元数据存储MySQL配置不当引发的,能够这样解决:node

mysql> set global binlog_format='MIXED';
  • 1
  • 1

2 For direct MetaStore DB connections, we don’t support retries at the client level.

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

create table years (year string, event string) 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.)
  • 1
  • 2
  • 1
  • 2

这是因为字符集的问题,须要配置MySQL的字符集:sql

mysql> alter database hive character set latin1;
  • 1
  • 1

3 HiveConf of name hive.metastore.local does not exist

当执行Hive客户端时候出现以下错误:apache

WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
  • 1
  • 1

这是因为在0.10 0.11或者以后的HIVE版本 hive.metastore.local 属性再也不使用。将该参数从hive-site.xml删除便可。oop

4 Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”

在启动Hive报以下错误:spa

(Permission denied: user=anonymous, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwx------
  • 1
  • 1

这是因为Hive没有hdfs:/tmp目录的权限,赋权限便可:.net

hadoop dfs -chmod -R 777 /tmp
  • 1
  • 1

5 未完待续

相关文章
相关标签/搜索