Cloudera Impala:文件的版本号无效。这可能是由于元数据过时

Posted

技术标签:

【中文标题】Cloudera Impala:文件的版本号无效。这可能是由于元数据过时【英文标题】:Cloudera Impala: File has an invalid version number. This could be due to stale metadata 【发布时间】:2016-04-08 12:46:41 【问题描述】:

我正在使用 Impala(版本 2.4.0)运行 CDH 发行版(版本 5.6.0)。

我有一些 Parquet 文件存储在 HDFS 中。接下来,我使用以下查询将这些文件加载​​到 Impala 外部表中:

create external table parquetTable
like parquet 'hdfs://cloudera-impala-mn0.eastus.cloudapp.azure.com:8020/user/root/big_data/part-r-00015-66cf01ca-ffee-4a62-b2c3-c09177ec4bd7.gz.parquet'
stored as parquet location 'hdfs://cloudera-impala-mn0.eastus.cloudapp.azure.com:8020/user/root/big_data/;

执行以下查询后,所有文件都会成功列出:

[cloudera-impala-dn0.eastus.cloudapp.azure.com:21000] > show files in parquettable;

另外,元数据是正确的(通过执行describe parquettable检查)。

表格的统计数据是:

[cloudera-impala-dn0.eastus.cloudapp.azure.com:21000] > show table stats parquettable;

行 |文件 |尺寸 |缓存字节 |缓存复制 |格式 |增量统计 |位置

-1 |第838章249.64GB |未缓存 |未缓存 |实木复合地板 |假 | hdfs://cloudera-impala-mn0.eastus.cloudapp.azure.com:8020/user/root/big_data

执行以下查询:

[cloudera-impala-dn0.eastus.cloudapp.azure.com:21000] > select count(*) from parquettable;

导致以下WARNING,但没有任何输出结果或错误:

文件'hdfs://cloudera-impala-mn0.eastus.cloudapp.azure.com:8020/user/root/big_data/part-r-00001-7c29b85c-bd1f-420e-8834-96300076a92d.gz.parquet ' 的版本号无效:▒.F/ 这可能是由于元数据过时造成的。尝试运行“刷新 default.parquettable”。

运行refresh default.parquettable 没有任何效果。

任何帮助将不胜感激!

【问题讨论】:

您可以尝试在 impala shell 中运行“invalidate metadata”命令并再次尝试查询吗? @Lan 我也试过了,但还是没有成功。警告信息保持不变,没有输出。 如何创建基于镶木地板的桌子? @Lan 我更新了问题描述以包含表创建查询。 您的步骤看起来不错。现在,当您在创建桌子。那么part-r-00001-7c29b85c-bd1f-420e-8834-96300076a92d.gz.parquet 中的问题是什么?除了part-r-00015-66cf01ca-ffee-4a62-b2c3-c09177ec4bd7.gz.parquet 之外,你能去掉 big_data 表中的所有文件吗? 【参考方案1】:

您的步骤看起来不错。该错误抱怨 part-r-00001-7c29b85c-bd1f-420e-8834-96300076a92d.gz.parquet,而您在创建表时使用 part-r-00015-66cf01ca-ffee-4a62-b2c3-c09177ec4bd7.gz.parquet .所以看起来part-r-00001-7c29b85c-bd1f-420e-8834-96300076a92d.gz.parquet有问题。你能去掉 big_data 表中除了 part-r-00015-66cf01ca-ffee-4a62-b2c3-c09177ec4bd7.gz.parquet 之外的所有文件吗?

【讨论】:

公认的答案如何?它应该是一个评论,因为它只是提出一个问题,根本不提供任何解决方案。

以上是关于Cloudera Impala:文件的版本号无效。这可能是由于元数据过时的主要内容,如果未能解决你的问题,请参考以下文章

Impala 通过 jdbc 使元数据无效

如何在cloudera manager 6.3中配置'‑‑enable_orc_scanner',我的impala版本是3.2

ETL informatica 大数据版(不是云版)可以连接到 Cloudera Impala 吗?

Cloudera impala 支持 mongodb 吗?

连接到集群外的 Cloudera Impala / Hive

cloudera impala 中的多个查询执行