如果我想实时分析数十亿行日志来说明前k个用户模式,并且由于数据量巨大,有多个服务器可以满足用户请求并在各自的数据上记录数据机器,我应该怎么做呢?
我不是在寻找一个可以帮助我实现上述任务的开源实现,而是一种从每台机器聚合日志的方法(如果算法中可以进行本地聚合,则可能不一定需要)并根据某些约束对整个集进行分析以获得前几个日志。
我应该使用的数据结构应该是什么,以及应该采取的方法是什么?请注意,这些日志会不断生成,我们希望实时更新我们的结果。
答案 0 :(得分:0)
我应该使用的数据结构应该是什么以及应该采用什么方法?
MapReduce传统上用于此类任务,请尝试Hadoop。 distributed grep
是一个学校的例子,许多其他人正在使用它进行日志管理。
答案 1 :(得分:0)
我会这样做https://stackoverflow.com/a/6484592/760401
我必须说我从来没有为如此大量的数据做过,但是,Jabber / XMPP和CouchDB都因其扩展能力而闻名。