【问题标题】:tHiveCreateTable component gives "org.apache.hive.service.cli.HiveSQLException" exceptiontHiveCreateTable 组件给出“org.apache.hive.service.cli.HiveSQLException”异常
【发布时间】:2018-08-12 15:30:03
【问题描述】:

我有一个 Talend Big Data 工作,我正在尝试连接到 Hive 并创建一个表。 Hive 连接工作正常。但是 tHiveCreate 表给出了以下异常。

Exception in component tHiveCreateTable_1 (Test)
org.apache.hive.service.cli.HiveSQLException: Error while processing statement: Cannot modify mapred.job.name at runtime. It is not in list of params that are allowed to be modified at runtime
    at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:258)
    at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:244)
    at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:247)
    at local_project.test_0_1.Test.tHiveCreateTable_1Process(Test.java:643)
    at local_project.test_0_1.Test.tHiveConnection_1Process(Test.java:498)
    at local_project.test_0_1.Test.runJobInTOS(Test.java:948)
    at local_project.test_0_1.Test.main(Test.java:799)
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: Cannot modify mapred.job.name at runtime. It is not in list of params that are allowed to be modified at runtime
    at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:324)
    at org.apache.hive.service.cli.operation.HiveCommandOperation.runInternal(HiveCommandOperation.java:108)
    at org.apache.hive.service.cli.operation.Operation.run(Operation.java:264)
    at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:479)
    at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:466)
    at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:315)
    at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:509)
    at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1377)
    at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1362)
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286)
    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)

之前,tHiveConnection 因同样的错误而失败。根据一篇较早的帖子,我从 tHiveConnect 组件中取消选中 Hadoop 属性,它运行良好。类似的属性在 tHiveCreateTable 组件中不可用,因为我使用 tHiveConnection 向 tHiveCreateTable 组件提供连接详细信息。

任何帮助将不胜感激。谢谢 阿尼尔

【问题讨论】:

    标签: hadoop hive talend


    【解决方案1】:

    Talend (7.0.1) - Cannot modify mapred.job.name at runtime 类似的问题。尝试修复属性 hive.security.authorization.sqlstd.confwhitelist

    【讨论】:

    • 能否请您告知该属性的值应该是多少。
    • 谢谢@Harold。通过您的回答和更多研究,我能够解决此问题。
    【解决方案2】:

    我能够解决这个问题。 向 Ambari 中的自定义配置单元站点添加了一个属性: hive.security.authorization.sqlstd.confwhitelist.append 与值 mapred.job.name|mapred.child.env|query.invoker|hive.query.name

    问题已解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多