如何使用hadoop mapreduce查找登录持续时间
我是hadoop新手,最近熟悉了MapReduce技术。这是令人印象深刻的,但我是一个绝对的初学者,以锻炼一个mapreduce问题的解决方案。任何方向正确的帮助都将不胜感激。我有逻辑方法,但不知道如何用hadoop映射它 问题描述:我必须找到组织中每台服务器的登录持续时间。 投入: 有两个选项卡分隔的值文件作为输入提供,其结构如下:如何使用hadoop mapreduce查找登录持续时间,hadoop,Hadoop,我是hadoop新手,最近熟悉了MapReduce技术。这是令人印象深刻的,但我是一个绝对的初学者,以锻炼一个mapreduce问题的解决方案。任何方向正确的帮助都将不胜感激。我有逻辑方法,但不知道如何用hadoop映射它 问题描述:我必须找到组织中每台服务器的登录持续时间。 投入: 有两个选项卡分隔的值文件作为输入提供,其结构如下: File1: UserName Timestamp serverid CMXO001 02-Jan-2014 12:00:
File1:
UserName Timestamp serverid
CMXO001 02-Jan-2014 12:00:00.234567 HP0012XP023
CMXO001 02-Jan-2014 12:10:20.234567 HP0012XP023
上面的文件包含一个登录和相应的注销记录,该记录在输入文件中可以是任意顺序
File2:
ServerId ServerName
HP0012XP023 HP XP Server London
我们必须编写hadoop mapreduce作业来执行以下操作:
1:查找每天为每个服务器执行的登录[不需要服务器名称]
预期产出:
日期服务器登录帐户
91-01-2014 HP0012XP023 1
2:找出每个服务器的整个数据集中每个用户的总登录时间[总连接时间]
expected output:
Date ServerName User Durationfor that day
10/01/14 HP XP Server London CMXO001 10:20
3:查找每个月至少连接5次登录会话超过1小时的用户
Expected output:
Username Times
CMXO001 12
以下是3项任务的解决方案:
这听起来是一个非常好的方法。我将尝试一下并提供反馈。谢谢你的帮助,埃夫根尼,你已经指出了正确的方向。在使用分布式缓存和其他功能时出现了一些小问题,但它并没有停止使用。与分布式缓存相关的功能已被弃用,并且在这方面没有太多帮助,或者可能是我的新功能:)分布式缓存是Hadoop MapReduce最有用的功能之一。我猜您已经看过旧hadoop API中的org.apache.hadoop.filecache.DistributedCache。我建议您阅读Tom White的Hadoop权威指南(第三版!)中有关分布式缓存的内容。