【问题标题】:HIVE Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTaskHIVE 执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1
【发布时间】:2022-05-19 16:16:15
【问题描述】:

我在创建 hive 数据库时遇到以下错误

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 com/facebook/fb303/FacebookService$Iface

Hadoop version:**hadoop-1.2.1**

HIVE Version: **hive-0.12.0**

Hadoop 路径:/home/hadoop_test/data/hadoop-1.2.1
蜂巢路径:/home/hadoop_test/data/hive-0.12.0

我已将 hive*.jar ,jline-.jar,antlr-runtime.jar 从 hive-0.12.0/lib 复制到 hadoop-1.2./lib

【问题讨论】:

  • 运行hive 的用户是否具有对元存储的写入权限?

标签: hive


【解决方案1】:
set hive.msck.path.validation=ignore;
MSCK REPAIR TABLE table_name;

确保正确指定位置

【讨论】:

  • 谢谢!这值得获得绿色徽章。
  • 该选项抑制了我的错误。但是没有创建预期的分区。
  • 我累了,但我收到错误:处理语句时出错:无法在运行时修改 hive.msck.path.validation。它不在允许在运行时修改的参数列表中。你知道这是什么原因吗?
【解决方案2】:

通过以下方式,我解决了问题。

set hive.msck.repair.batch.size=1;
set hive.msck.path.validation=ignore;

如果不能设置值,会报错。Error: Error while processing statement: Cannot modify hive.msck.path.validation at runtime. It is not in list of params that are allowed to be modified at runtime (state=42000,code=1)

hive-site中添加内容:

key:
hive.security.authorization.sqlstd.confwhitelist.append
value:
hive\.msck\.path\.validation|hive\.msck\.repair\.batch\.size

【讨论】:

    【解决方案3】:

    将 hive-site.xml 中的 hive.metastore.schema.verification 属性设置为 true,默认为 false。

    更多详情请查看link

    【讨论】:

      【解决方案4】:

      我们收到此错误的原因是我们在外部 Hive 表中添加了一个新列。 set hive.msck.path.validation=ignore; 努力修复 hive 查询,但 Impala 有其他问题,通过以下步骤解决:

      在执行使元数据无效之后,Impala 查询开始失败并出现错误:列的 Parquet 架构不兼容

      Impala 错误解决方案:set PARQUET_FALLBACK_SCHEMA_RESOLUTION=name;

      如果您使用 Cloudera 发行版,以下步骤将使更改永久生效,您不必为每个会话设置选项。

      Cloudera Manager -> 集群 -> Impala -> 配置 -> Impala 守护程序查询选项高级配置片段(安全阀)

      添加值:PARQUET_FALLBACK_SCHEMA_RESOLUTION=name

      注意:在 Cloudera Manager 中设置参数时不要使用 SET 或分号

      【讨论】:

        【解决方案5】:

        使用“hive --hiveconf hive.root.logger=DEBUG,console”打开 hive cli 以启用日志并从那里调试,在我的例子中,分区的骆驼案例名称写在 hdfs 上,我用它创建了 hive 表完全小写的名称。

        【讨论】:

          【解决方案6】:

          我遇到了同样的错误。就我而言,原因是在 HDFS 仓库中创建了一个同名目录。删除此目录后,它解决了我的问题。

          【讨论】:

            【解决方案7】:

            这可能是因为您的 metastore_db 已损坏。从 metastore_db 中删除 .lck 文件。

            【讨论】:

              【解决方案8】:

              hive -e "msck 修复表数据库.tablename" 它将修复表的表元存储模式;

              【讨论】:

                【解决方案9】:

                亚马逊雅典娜

                如果您因为 Amazon Athena 错误而来到这里,您可以使用下面的这一点。首先检查所有文件是否具有相同的架构:

                If you run an ALTER TABLE ADD PARTITION (or MSCK REPAIR TABLE) statement and mistakenly specify a partition that already exists and an incorrect Amazon S3 location, zero byte placeholder files of the format partition_value_$folder$ are created in Amazon S3. You must remove these files manually.
                

                我们删除了带有awscli 的文件。

                aws s3 rm s3://bucket/key/table/ --exclude="*" --include="*folder*" --recursive --dryrun 
                

                另请参阅docs,其中包含一些额外步骤。

                【讨论】:

                  【解决方案10】:

                  当底层 hdfs 目录更新为新分区时,我遇到了类似的问题,因此 hive 元存储不同步。

                  通过以下两步解决:

                  1. MSCK 表 table_name 显示了所有分区不同步的内容。
                  2. MSCK REPAIR 表 table_name 添加了缺少的分区。

                  【讨论】:

                  • MSCK table table_name 返回语法错误 extraneous input 'msck' expecting {'(', 'SELECT', 'DESC', 'USING', 'WITH', 'VALUES', 'CREATE', 'TABLE', 'INSERT', 'DELETE', 'DESCRIBE', 'GRANT', 'REVOKE', 'EXPLAIN', 'SHOW', 'USE', 'DROP', 'ALTER', 'SET', 'RESET', 'START', 'COMMIT', 'ROLLBACK', 'CALL', 'PREPARE', 'DEALLOCATE', 'EXECUTE'}msck repair table table_nameExecution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. null 结尾
                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-05-23
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-07-05
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多