千家信息网

Hive问题有哪些

发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,Hive问题有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 Cannot execute statement:
千家信息网最后更新 2025年02月09日Hive问题有哪些

Hive问题有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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

当启动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';

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

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

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.)

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

mysql> alter database hive character set latin1;

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

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

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

这是由于在0.10 0.11或者之后的HIVE版本 hive.metastore.local 属性不再使用。将该参数从hive-site.xml删除即可。

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

在启动Hive报如下错误:

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

这是由于Hive没有hdfs:/tmp目录的权限,赋权限即可:

hadoop dfs -chmod -R 777 /tmp

5 Specified key was too long; max key length is 767 bytes

Hive> CREATE TABLE dummy(value STRING);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 bytescom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

解决方法:

mysql > alter database hive character set latin1;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0