hadoop - 元模型hadoop-ExcelDataContext的HdfsResource问题

标签 hadoop resources metamodel

一点背景:
我的程序用来支持普通的文件系统,并使用ExcelDataContext读取Excel文件(并对数据进行一些操作)。一切都很好。

现在:
我的程序必须进行修改以支持Hadoop Oozie并与之一起工作。使用 Metamodel-hadoop 4.3.5版本,我设法使用 HdfsResource 从hadoop读取了excel文件。 ExcelDataContext能够支持资源,可以像以前一样完成相同的工作。

问题:
但是,即使我的程序完成运行,我的oozie作业工作流程也无法结束/压缩。经过几个小时的调试,我发现这是使用HdfsResource初始化ExcelDataContext的问题。

这是我定义 HdfsResource 的方法。

...
Resource hdfsResource = new HdfsResource(hdfsExcelFilePath);
ExcelDataContext dc = new ExcelDataContext(hdfsResource, excelConfiguration);
....



如果我注释掉hdfsResource行并使用本地文件系统,则该程序可以毫无问题地完成/结束该过程。

我怀疑资源没有正确关闭/结束,但即使将其设置为NULL,也无法关闭/结束。反正有解决办法吗?没有关闭功能。

hdfsResource = null;

最佳答案

经过两天的调查研究,我发现我走错了方向。不是资源无法正确关闭的问题,而是相反的问题。 “HdfsResource”已正确关闭HDFS,这会导致Oozie工作流由于关闭连接而无法获取HDFS。

解决方案:
我已经在MetaModel-Hadoop中克隆了HDFSResource的相同副本,该副本使用 FileHelper.SafeClose(fs)修改了所有功能以将其注释掉。我不确定这是否是正确的方法,但我的目的是让HDFS连接始终可用,直到Oozie在完成工作后结束连接本身为止。

关于hadoop - 元模型hadoop-ExcelDataContext的HdfsResource问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32522972/

相关文章:

hadoop - 如何使 Hadoop Distcp 复制自定义文件夹列表?

hadoop - 执行hadoop jar时出现超时错误./hadoop-examples-1.0.3.jar pi 2 5

c# - 在 asp.net 3.5 中将 Stream 保存到文件的最佳方法?

java - 修复了使用 JPA、Criteria API 和静态元模型时的列值

hadoop - Oozie 仅在指定时间范围内运行作业

architecture - Hadoop 2.x 行 : How "Alpha" is "alpha"

asp.net - 图像作为 Asp.Net 5 类库中的资源

image - 具有许可许可证的应用程序和Web应用程序的优质免费图标/图像的来源?

spring-boot - 如何使用 gradle 在 spring-boot 中生成 JPA 元模型?(+ lombok)

java - 将 xls 文件放入 jar 中