我有一些用c++编写的opencv函数,它在linux中被编译成二进制文件。此函数以图像文件位置为源,对其进行处理,并给出一个值作为输出。
现在,我正在使用hadoop流媒体,它的mapper是用python编写的,它调用这个二进制文件来处理图像。Map器的输入是一个文本文件,其中每行都有图像文件路径。
迄今为止:
首先,我用一个系统调用测试了streaming mapreduce,而不是调用img processing exe,所有的工作都如预期的那样。我已经制作了二进制文件所需的所有库,如opencv库等。我通过给图像处理二进制文件指定空文件位置来测试我的mapreduce。它的工作方式与预期的一样,并将二进制文件中嵌入的error msg作为输出。它成功地完成了所有的map和reduce并给出了输出。
议题和问题:
但是当我给二进制文件一个实际的图像位置时。mapreduce说error streaming.streamjob失败:作业未成功。错误:na
关于如何给二进制文件指定文件位置有什么想法吗?或者我应该读取Map器中的图像,并将图像数据作为二进制文件发送到被调用的exe?
暂无答案!
目前还没有任何答案,快来回答吧!