Hadoop 使用Mapreduce映射不总是出现在同一行上的多个唯一值
我在使用Mapreduce时遇到了一个复杂的问题。我试图匹配两个不总是在同一行中同时出现的唯一值。一旦我将这些映射出来,我需要计算该映射的唯一事件总数 我正在处理的日志文件是100GB以上的未压缩文件,数据分为两部分,我需要将它们组合在一起。这些事件分布在许多不同的日志文件中。我认为描述这个问题最简单的方法是显示一个日志样本 [2010/09/23 12:02am] AAAAAAAAAA BBBBBBBBBB Event message type A [2010/09/23 12:02am] BBBBBBBBBB Event message type B [2010/09/23 12:03am] BBBBBBBBBB Event message type B [2010/09/23 12:09am] BBBBBBBBBB [2010/09/23 12:01am] CCCCCCCCCC DDDDDDDDDD Event message type A [2010/09/23 12:05am] DDDDDDDDDD Event message type A [2010/09/23 12:06am] DDDDDDDDDD Event message type C [2010/09/23 12:02am]AAAAAAAAABBBBBBBB事件消息类型A [2010/09/23 12:02am]BBBBBB事件消息类型B [2010/09/23 12:03am]BBBBBB事件消息类型B [2010/09/23 12:09am]bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb [2010/09/23 12:01am]中交DDDD事件消息类型A [2010/09/23 12:05am]DDDD事件消息类型A [2010/09/23 12:06am]DDDD事件消息类型C 第2列和第3列是不匹配的唯一ID。我需要在第4列中列出与第2列和第3列链接的唯一项目的数量。第二列始终至少出现一次。第三列始终存在。第4列可能存在,也可能不存在。我仍然想将第4列作为未知事件计算。唯一值的实际数量达到数百万,总日志行数达到数十亿 上述问题的解决方案应该是 AAAAAAAAAA,BBBBBBBBBB,A 1 AAAAAAAAAA,BBBBBBBBBB,B 2 AAAAAAAAAA,BBBBBBBBBB,Unknown 1 CCCCCCCCCC,DDDDDDDDDD,A 2 CCCCCCCCCC,DDDDDDDDDD,C 1 AAAAAAAA,BBBBBBBB,A 1 AAAAAAAA,BBBBBBBB,B 2 AAAAAAAA,BBBBBBBB,未知1 中交,dddddddd,A 2 中交,中交,中交,中交1 我曾想过在两个单独的mapreduces中分解第2列和第3列,但将这些结果重新组合在一起是很困难的。不确定如何使用最终Mapreduce来组合这些值。第二列将在文件中的所有位置。它可能在凌晨1点出现,然后在晚上11点再次出现Hadoop 使用Mapreduce映射不总是出现在同一行上的多个唯一值,hadoop,mapreduce,Hadoop,Mapreduce,我在使用Mapreduce时遇到了一个复杂的问题。我试图匹配两个不总是在同一行中同时出现的唯一值。一旦我将这些映射出来,我需要计算该映射的唯一事件总数 我正在处理的日志文件是100GB以上的未压缩文件,数据分为两部分,我需要将它们组合在一起。这些事件分布在许多不同的日志文件中。我认为描述这个问题最简单的方法是显示一个日志样本 [2010/09/23 12:02am] AAAAAAAAAA BBBBBBBBBB Event message type A [2010/09/23 12:0
有没有关于如何使用Hadoop mapreduce解决此问题的建议?我使用的是Hadoop流媒体,不懂Java。我给你的建议是如下所示:
AAAAAAAAAA BBBBBBBBBB Event message type B
AAAAAAAAAA BBBBBBBBBB Event message type A
AAAAAAAAAA BBBBBBBBBB Event message type B
AAAAAAAAAA BBBBBBBBBB Unknown
CCCCCCCCCC DDDDDDDDDD Event message type A
CCCCCCCCCC DDDDDDDDDD Event message type A
CCCCCCCCCC DDDDDDDDDD Event message type C
然后在第二步中,基本上执行与众所周知的“Wordcount”示例相同的操作
将整个“aaaaaaaaaaaabbbbbbbb事件消息类型B”作为您的“单词”
为您提供所需的输出:
AAAAAAAAAA BBBBBBBBBB Event message type B 2
AAAAAAAAAA BBBBBBBBBB Event message type A 1
AAAAAAAAAA BBBBBBBBBB Unknown 1
CCCCCCCCCC DDDDDDDDDD Event message type A 2
CCCCCCCCCC DDDDDDDDDD Event message type C 1
HTH欢迎来到堆栈溢出。一旦找到问题的正确答案,请记住“接受”。这有助于其他贡献者知道您的问题已经解决,并奖励帮助您的人。
AAAAAAAAAA BBBBBBBBBB Event message type B 2
AAAAAAAAAA BBBBBBBBBB Event message type A 1
AAAAAAAAAA BBBBBBBBBB Unknown 1
CCCCCCCCCC DDDDDDDDDD Event message type A 2
CCCCCCCCCC DDDDDDDDDD Event message type C 1