0

我有一些用 C++ 编写的 opencv 函数,并在 linux 中编译为二进制文件。此函数将图像文件位置作为源并对其进行处理并给出一个值作为输出。

现在,我正在使用具有用 python 编写的映射器的 hadoop 流,它调用这个二进制文件来处理图像。映射器的输入是一个文本文件,其中每一行都有图像文件路径。

至今:

首先,我使用系统调用而不是调用 img 处理 exe 测试了流式 mapreduce,并且所有工作都按预期工作。我已经制作了二进制文件所需的所有库,例如 opencv 库等。我通过将空文件位置提供给图像处理二进制文件来测试我的 mapreduce。它按预期工作,并在二进制文件中提供我嵌入的错误消息作为输出。它成功地完成了所有的 map 和 reduce 并给出了输出。

问题和疑问:

但是当我给二进制文件一个实际的图像位置时。Mapreduce 失败说 ERROR streaming.StreamJob: Job not successful。错误:不适用

关于如何为二进制文件提供文件位置的任何想法?或者我应该读取映射器中的图像并将图像数据作为二进制文件发送到被调用的 exe?

4

0 回答 0