hive查询在tez上失败,但在MapReduce上成功,当从beeline连接时

r3i60tvu  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(489)

我遇到了一个奇怪的错误。我正在用where子句运行一个简单的select*查询,下面是查询执行状态的摘要
从emr(tez引擎)连接到配置单元-成功
从emr(mr引擎)连接到配置单元-成功
从直线连接到Hive(tez引擎)-失败
从直线连接到Hive(mr引擎)-成功
我需要解决第三点。这是我得到的错误跟踪,无法找到此失败的根本原因以及此错误日志试图传达的内容。

at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:380)
    at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:257)
    at org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91)
    at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1840)
    at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:362)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)' SQL<select `ID`, `ISDELETED`, `ACCOUNTID`, `CREATEDBYID`, `CREATEDDATE`, `FIELD`, `OLDVALUE`, `NEWVALUE`, `AUDIT_UPD_TS`, `SRC_OP_TYP`, `GG_INGEST_TS` from `t4i_ent_sfdc_b2b_psa`.`sf_accounthistory` x WHERE SRC_OP_TYP='NA'>```
1aaf6o9v

1aaf6o9v1#

尝试调用 beeline ( Tez engine )如下所示,然后运行查询:

beeline -u "jdbc:hive2://<host>:<port>,/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2-batch?tez.queue.name=<yarn-queue-name>"

如果上述方法不起作用,请尝试修复sql中的任何问题。我在sql查询的where子句前面看到了“x”,这可能就是问题所在。尝试删除它并运行查询。

`sf_accounthistory` x WHERE SRC_OP_TYP='NA'

希望这有帮助

kqqjbcuj

kqqjbcuj2#

我能解决这个问题。问题是我通过jdbc将应用程序连接到hive时没有指定用户。对于那些需要简单的数据流的查询,它是成功的,但是当map reduce作业被触发写入hdfs时,写入操作失败并出现错误

Failed to execute tez graph.
    org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=WRITE, inode="/user":hdfs:hadoop:drwxr-xr-x

为了解决这个问题,我添加了user=hadoop;在jdbc url中,查询现在可以正常运行了。

相关问题