CDH 5.3.2:加载数据路径失败并出现“无可见文件”错误

Posted

技术标签:

【中文标题】CDH 5.3.2:加载数据路径失败并出现“无可见文件”错误【英文标题】:CDH 5.3.2: Load data inpath failing with "no visible files" error 【发布时间】:2018-03-20 05:17:47 【问题描述】:

我们在 CDH 5.3.2 上使用 Hadoop、Hive 和 Impala 构建了一个报告应用程序。我们所有的作业都是从一个节点(称为编排节点)安排的。此节点上未部署 Hadoop 服务。然而,由于它是整个应用程序的潜在单点故障,我们通过添加另一个被动编排节点并使用 rcron(保持活动)来保持主动被动同步,从而为其引入了高可用性。

但是由于实施中的一些缺陷,出现了两个节点都出现的情况。在此期间,有一些作业试图写入同一个 HDFS 目录,导致日志中抛出以下异常:

8/03/16 07:26:16 WARN hdfs.DFSClient: Error Recovery for block BP-793706682-10.3.8.147-1434350563384:blk_1128320405_57247539 in pipeline 10.3.3.163:50010, 10.3.8.130:50010, 10.3.3.252:50010: bad datanode 10.3.3.163:50010
18/03/16 07:26:16 WARN hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): BP-793706682-10.3.8.147-1434350563384:blk_1128320405_57247539 does not exist or is not under Constructionnull

其中一个 Orch 节点被手动关闭,但随后我们开始从我们的一个脚本中看到以下错误,该脚本试图将数据从 HDFS 加载到表中

Query: load DATA INPATH '/tmp/aaa/bbbb' INTO TABLE temp.data_aaa_bbbb_temp
ERROR: AnalysisException: INPATH location 'hdfs://xyz-nameservice/tmp/aaa/bbbb' contains no visible files.
Could not execute command: load DATA INPATH '/tmp/aaa/bbbb' INTO TABLE temp.data_aaa_bbbb_temp

我不确定是什么导致了这个错误。当两个作业同时尝试写入同一位置时,HDFS 目录是否损坏?

我能够通过删除并重新创建 hdfs 位置来解决此问题,但是此问题似乎一次又一次地发生。

除了可能的根本原因,我还在寻找有关永久解决此问题的建议。

【问题讨论】:

【参考方案1】:

这里的问题在于脚本的设计。 它做了两件事: 1) 将数据加载到临时表中 2) 一些处理后将数据插入到主表中。

脚本在第 2 步失败,但是由于脚本中内置的重试机制,它正在从第 1 步重试脚本,而不仅仅是失败的部分。

因此再次执行加载数据步骤。但是,这一步已经成功执行,没有文件可以移动,导致没有可见文件异常。

我终于将我的脚本重构为两个单独的组件来处理这个问题。

【讨论】:

以上是关于CDH 5.3.2:加载数据路径失败并出现“无可见文件”错误的主要内容,如果未能解决你的问题,请参考以下文章

错误:架构验证失败并出现以下错误:数据路径“”不应具有其他属性(项目)

Angular Schema 验证失败并出现以下错误:数据路径“”不应具有其他属性(rebaseRootRelativeCssUrls

导入数据存储备份时,大查询加载失败并出现错误字符 (ASCII 0)

Angular 12:架构验证失败并出现以下错误:数据路径“”不应具有其他属性(inlineStyleLanguage)

原CDH或HDP集群到达最新版本CDP的三条路径

原CDH或HDP集群到达最新版本CDP的三条路径