5

我正在学习 Hadoop 和 MapReduce 框架。到目前为止,我一直在玩文本文件并利用 MapReduce 框架处理它们。

当我开始学习 MapReduce 时,我发现第一个流行的例子是 WORDCOUNT,它是一个文本文件处理场景。然后我编写了自己的逻辑来处理一些文本文件并显示结果。在那种情况下我是成功的。

但我需要转向不同的输入格式。因为在现实世界中,我们不会只处理文本文件。我需要探索使用 MapReduce 框架对图像、音频、视频等不同格式的处理。但我正在努力寻找适合我的目的的例子。我需要一些关于 MapReduce 的示例和教程,其中包含从文本到视频的不同输入格式。

编辑:

我的意思是处理图像、视频和音频。不仅是文本文件。

编辑2:

一个例子:假设我有一个 10 年的 .bmp 图像(不涉及压缩和解压缩),其大小为 450GB。我需要分析文件夹中的每一个图像,我应该显示相似的图像(通过比较像素的相似性模式)。我应该列出在“从”“到”日期之间创建/修改的图像。假设在 2013 年 1 月至 2013 年 2 月期间在该组图像中创建/修改的图像。我怎样才能做到这一点?

如果有人帮助我走上正确的道路,我会很高兴!

4

2 回答 2

3

设置映射器和缩减器时,可以指定输入/输出键和值数据类型。这是您可以按照我认为您想要的方式处理不同数据类型的地方。

这是一个使用 int 数据类型计算平均值的示例(尽管格式不正确):

http://souravgulati.webs.com/apps/forums/topics/show/8539120-hadoop-map-reduce-example-calculate-mean-in-map-reduce

编辑

在处理这些类型的文件时,再举一个例子来说明您正在尝试完成什么。例如,如果您使用音频:您使用的是 .wav 文件吗?很高兴知道您可以使用字节数据类型进行处理。否则,如果您使用的是 .mp3 文件,则需要处理压缩。

与图像相同,我认为 .bmp 文件没有被压缩,并且可以直接在 map reduce 中使用 int 或 byte 数据类型进行操作。使用任何类型压缩的文件很可能需要在运行作业之前进行某种预处理。

大多数教程都处理字数或类似的简单问题。最好有一个具体的问题要解决,以获得更好的建议。

soooo 你想用你的 mapreduce 工作做什么?计算图像中的像素数?压印图像?计算音频文件的平均音量?

编辑

您所描述的是 2 个不同的映射任务(除非您只想对终止日期之间的所有图像执行分析)。

您可以尝试做的事情(这是没有任何代码的高级描述)如下(这是我的想法,因为我没有以这种方式使用 mapreduce):

因为您的 mapred 作业需要一次比较两个图像文件,所以您需要运行文件数 facotrial map reduce 作业以获得所有可能的文件比较。这可能需要一段时间!

您需要您的映射器一次输入两个文件并执行比较 mapreduce 作业。您可以根据需要多次运行此作业来处理源图像文件的所有组合。你可以用 [oozie][1] 之类的东西来协调这些工作

现在您可能会问 - 如何在 mapreduce 中比较两个图像文件?同样,我还没有这样做,但这可能会为您指明正确的方向 - 查看具有多个文件源的 mapreduce 作业: Hadoop mapper reading from 2 different source input files

于 2013-03-18T06:24:24.807 回答
3

HIPI是一个使用 MapReduce 对图像文件进行图像处理的框架。

是一篇关于云中高性能视频处理的论文。它不完全是 MapReduce,但与 MapReduce 非常相似。

请注意,我没有尝试过它们,但做了一些谷歌搜索,这些是我能得到的最接近的资源。

于 2013-03-18T14:55:16.213 回答