客对网站的资源(如页面、图片、JavaScript文件、CSS文件等等)请求。网站日志结构一般较为固定;在数据量不大、需求简单的情况下,可以通过命令行使用简单的命令快速在内存中进行处理。当数据量超过了内存的许可之后,可以将网站日志导入关系型数据库,编写SQL语句或开发上层应用,实现网站使用情况的报表展示。而当需要扩展传统点击流数据,记录更加复杂的访客点击操作,致使数据量和运算需求超过了单机的许可范围之后,大规模、超复杂的网站访客行为分析工作将变得十分困难。Р然而,随着用户规模的扩大、业务的纵深、时间的累积以及长尾战略的实施[4],大规模、超复杂的网站访客行为分析的需求从无到有,而且日益变得迫切。一般中型的网站(PV在10万以上),每天会产生1GB以上的网站日志文件;大型或超大型的网站,每小时就可能产生10GB的数据量[5]。亟待有技术或解决方案能良好应对大规模、超复杂的网站访客行为分析工作。Р为此,技术人员试图将对点击流数据的存储与计算工作分配给多台机器协作完成。从理论上讲,传统分布式计算系统能够满足这一需求。然而具体到实现上,这样的一个系统底层涉及硬件环境的精密配置,任务的切分、调度、同步、合并,错误的处理与恢复等机制的充分设计与实现,中间涉及复杂的业务逻辑,上面涉及面向各种平台的数据展示与交互界面,而且不得不面临业务需求的频繁变更。如此之高的复杂性使得基于传统分布式计算系统的网站访客行为分析方案难以实施。Р近年来兴起的云计算使得大规模、超复杂的网站访客行为分析工作成为了可能。一方面,云计算通过共享软硬件的方式,极大地降低了硬件使用的成本;反过来,在成本一定的条件下,硬件的计算能力相对有了极大的提升。另一方面,云计算平台通过专门搭建的集群系统,良好地实现了存储与计算任务的多机协作,而且这一底层协作平台对应用开发者完全透明,开发者只需关注上层的应用逻辑,开发工作得以大大简化