我想知道如何从聚合日志中检索数据?这就是我所拥有的:
- 每天大约30GB的未压缩日志数据加载到HDFS中(这将很快增长到大约100GB)
这是我的想法:
- 每晚使用猪头处理这些数据
- 读取,拆分日志,自定义UDF检索以下数据:timestamp
,url
,user_id
(假设这就是我需要的所有内容)
- 从日志条目中将其加载到HBase中(日志数据将无限存储)
然后,如果我想知道哪些用户在给定时间范围内看到了特定页面,我可以快速查询HBase而无需扫描每个查询的整个日志数据(我想要快速回答 - 分钟是可以接受的)。并且会同时进行多次查询。
您对此工作流程有何看法?你认为,将这些信息加载到HBase中会有意义吗?还有哪些其他选项以及它们与我的解决方案相比如何? 我感谢所有意见/问题和答案。提前谢谢。
答案 0 :(得分:0)
使用Hadoop,您始终可以执行以下两项操作之一(处理或查询)。
对于你想要做的事情,我建议使用HIVE http://hadoop.apache.org/hive/。您可以获取数据,然后创建一个M / R作业来处理并将您喜欢的数据推送到HIVE表中。从那里(您甚至可以对数据进行分区,因为它可能适合速度而不是查看您所说的不需要的数据)。从这里,您可以根据需要查询数据结果。这是非常好的在线教程http://www.cloudera.com/videos/hive_tutorial
有很多方法可以解决这个问题,但听起来HBase有点矫枉过正,除非您想要设置所需的所有服务器作为练习来学习它。如果你有数千人同时想要获取信息,HBase会很好。
您可能还想查看FLUME,它是Cloudera的新导入服务器。它会将您的文件从某个地方直接发送到HDFS http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/