token TOK_TMP_FILE 附近遇到 Hive 查询错误

标签 hive

我收到一个很长的错误。下面是前几行

TExecuteStatementResp(status=TStatus(statusCode=3, infoMessages=["*org.apache.hive.service.cli.HiveSQLException:Error while compiling statement: FAILED: SemanticException 0:0 Error creating temporary folder on: maprfs:/user/hive/warehouse/wh_db.db. Error encountered near token 'TOK_TMP_FILE':28:27", 'org.apache.hive.service.cli.operation.Operation:toSQLException:Operation.java:388', 'org.apache.hive.service.cli.operation.SQLOperation:prepare:SQLOperation.java:193', 'org.apache.hive.service.cli.operation.SQLOperation:runInternal:SQLOperation.java:276',`

根据此线程,基于选择查询创建表时出现错误是因为用户没有对其连接的数据库的写入权限。 HIVE CREATE TABLE sematicException 0:0

我正在从用户具有写入访问权限的数据库运行查询。因此,在下面的查询中,用户对 db2 具有 write 权限,对 db1db3< 具有 read 权限

查询

use db2;

CREATE TABLE tbl123 AS 
    SELECT FROM db1.tbl1 t1 
    INNER JOIN tbl2 t2 ON t1.key = t2.key 
    INNER JOIN db3.tbl3 t3 ON t1.key2 = t3.key;

此外,当通过登录 shell 控制台执行查询时,它运行良好。但是,当使用 python-pyhive 从程序运行时,会发生此错误。我正在使用下面的配置来运行查询。使用 defaulttez 引擎,查询从 shell 成功执行。仅使用 pyhive 我收到此错误

set hive.execution.engine=tez
set hive.vectorized.execution.enabled = true
set hive.vectorized.execution.reduce.enabled = true

最佳答案

请检查用户是否有权在该位置创建临时文件夹。

关于 token TOK_TMP_FILE 附近遇到 Hive 查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53778140/

相关文章:

hadoop - 如何在Hive中的多列中拆分字符串

java - 从 Java 执行但不是从命令行执行时出现 NoSuchFieldError

mysql - 使用Sqoop/Hive,如何将外键信息与其他数据一起保存到HDFS?

hadoop - 与配置单元中的外部表混淆

string - Hive:将字符串转换为整数

hadoop - Hive 无法手动设置 reducer 的数量

hadoop - 如何在满足特定条件时逐行迭代配置单元表并计算指标?

sql - 在 Hive 上创建表

hadoop - Hive 上的实时 Spark SQL

hadoop - Hive 不显示表