java - Hadoop - 图像输入格式 - JPEG 到 base64 转换

标签 java image hadoop

我对 Hadoop 比较陌生,到目前为止我唯一的经验是字数问题。

我想要完成的事情: 我正在尝试编写一个 mapreduce 作业以将 JPEG 格式的图像转换为 base64 格式。这些图像将全部保存在一个目录中。我需要从这个目录中读取图像并在我的映射器中将图像转换为 base64 字符串。 然后在我的 reducer 中,我需要合并所有图像的 base64 字符串,并将其全部合并到一个 log/txt 文件中。

我面临的问题: 我的输入格式有问题。网上的大多数示例仅显示使用文本输入格式。在编写将图像转换为 base64 的普通 java 程序时,我使用了 BufferedImage 类。我想知道是否可以为 mapreduce 定义输入格式,以便我可以处理图像,如果可以,应该做些什么。

提前致谢!

最佳答案

据我所知,您有以下选择:

1- 使用HIPI(Hadoop Image Processing Interface),它提供了很多图像处理的工具

2- 使用 ImageInputFormat 等第三方图像输入格式

3- 使用 3rd-party WholeFileInputFormat 一次读取整个图像,但它将作为整个文件读取,因此您需要对其进行解析。

3- 如果所有图像的字节大小相同,则可以使用 FixedLengthInputFormat。不过,根据您的图像,可能需要进行一些解析。

4- 如果这些都不适合您,那么您可能想阅读一些有关如何制作适合您目的的自己的输入格式的内容。您可以在《Hadoop:权威指南》一书或 here 中找到一个很好的教程来执行此操作。

祝你好运

关于java - Hadoop - 图像输入格式 - JPEG 到 base64 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190750/

相关文章:

java - 无法在 Android Studio 中清理项目

java - 如何在 Android 中使用 PreferenceScreen

jquery - 如何使图像 slider 自动播放?

hadoop - 如何使用 Dask 在 yarn 上运行并行化的 python 作业?

java - 与 Btree 算法作斗争

javascript - 在位置可变的图像上创建带有文本叠加的 html

angular - Data-URL较大时,未渲染图像:net::ERR_CONNECTION_RESET

mysql - 使用Oracle Loader将HBase数据导入Oracle表

apache-spark - Spark on Yarn 发送 RPC 失败且 Slave 丢失

java - 将两个椭圆拟合到 body 轮廓