我对hadoop还比较陌生,到目前为止,我唯一的经验就是wordcount问题。
我正在尝试完成的是:我正在尝试编写一个mapreduce作业,将jpeg格式的图像转换为base64格式。所有图像都将保存在一个目录中。我需要从这个目录中读取图像,并在Map器中将图像转换为base64字符串。然后在我的reducer中,我需要将所有图像的base64字符串合并到一个log/txt文件中。
我面临的问题:输入格式有问题。网络上的大多数示例只显示文本输入格式的用法。在编写一个普通的java程序将图像转换为base64时,我使用了BuffereImage类。我想知道是否有可能定义mapreduce的输入格式,这样我就可以处理图像,如果是的话应该怎么做。
提前谢谢!
1条答案
按热度按时间eqoofvh91#
据我所知,你有以下选择:
1-使用hipi(hadoop图像处理接口),它提供了许多图像处理工具
2-使用第三方图像输入格式,如imageinputformat
3-使用第三方wholefileinputformat一次读取一个完整的图像,但它将作为一个完整的文件读取,因此您需要对其进行解析。
3-如果所有图像的字节大小相同,则可以使用FixedLengthinInputFormat。不过,根据您的图像,可能需要进行一些解析。
4-如果这些都不适合你,那么你可能想读一点关于如何使自己的输入格式适合你的目的。你可以在hadoop:权威指南一书中找到一个很好的教程,或者在这里找到
祝你好运