当前位置: 首页 > 知识库问答 >
问题:

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

阎晗日
2023-03-14

我们在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个答案

盖绪
2023-03-14

这里的问题是剧本的设计。它做了两件事:1)将数据加载到暂存表中;2)经过一些处理后将数据插入主表中。

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

因此,再次执行加载数据步骤。但是,此步骤已成功执行,没有要移动的文件,因此没有可见文件异常。

为了解决这个问题,我最终将脚本重构为两个单独的组件。

 类似资料:
  • 问题内容: 我正在尝试运行以下Python代码以通过Selenium创建Firefox Webdriver窗口: 尽管此代码在几周前运行良好,但现在会产生以下预兆消息: 有谁知道这意味着什么,或者我可以采取什么措施来纠正错误并使代码按预期运行?我已经通过Google搜索找到了相关的错误消息,但是没有任何事情可以解决我的问题。 为此,我可以通过将上述第二行更改为来打开Chrome Webdriver

  • 问题内容: 我正在尝试在Unix计算机中加载“ rJava”包。在加载之前,我已经使用 在我的R脚本中。 尽管如此,我收到以下错误(以下是错误的一部分): 如您所见,错误显示 / usr / lib / jvm / jre / bin / java:没有这样的文件或目录 。但是我还没有将其设置为 myfilepath 。如何防止安装程序查看此路径? 请帮助。 问题答案: 这很完美。如果将来有人阅读

  • 每当我尝试使用docfx构建任何留档时,我都会在构建步骤中收到以下错误,该步骤使用msBuild来分析cspros代码中的xml注释: 警告:Metadata命令。ExtractMetadataWorkspace失败,原因是:[失败]处理文件“C:\temp\docfxtest\docfx_project\src\src.csproj”时MsBuild失败,并带有消息:无法加载SDK解析器。存在清

  • 我的加载作业将“文件夹\*”加载到bigquery, 我的调用者在下面,load_job有任何字段可以提取失败文件吗?

  • 问题内容: 有一个maven项目A。执行mvn全新安装后,将构建项目,并且该jar在我的本地存储库中可用,即 A.jar包含几个类和这些类使用的xml文件 从另一个Maven项目中,我正在调用使用一个XML文件的类中的一种方法。 代码是: 第二个项目位于我的D盘中。在获得绝对路径时,我得到的是\ com \ stackoverflow \ A \ res \ p.xml,这是正确的绝对路径。 但是

  • 大家好!我刚刚发现我的codename one应用程序在模拟器和android上崩溃,甚至没有加载第一页。以下是我收到的错误:java.lang.NoClassDefFoundError:javabc/SecureRandom at com.cloudinary.cloudnary.(cloudinaray.java:113)