Spark Streaming 流式计算实战
这篇文章由一次平安夜的微信分享整理而来。在Stuq 做的分享, 原文内容。 业务场景 这次分享会比较实战些。具体业务场景描述: 我们每分钟会有几百万条的日志进入系统,我们希望根据日志提取出时间以及用户名称,然后根据这两个信息形成 userName/year/month/day/hh/normal userName/year/month/day/hh/delay 路径,存储到HDFS中。如果我们发现日志产生的时间和到达的时间相差超过的一定的阈值,那么会放到 delay 目录,否则放在正常的 normal 目录。 Spark Streaming 与 Storm 适用场景分析 为什么这里不使用 Storm呢? 我们初期确实想过使用 Storm 去实现,然而使用 Storm 写数据到HDFS比较麻烦: * Storm 需要持有大量的 HDFS 文件句柄。需要落到同一个文件里的记录是不确定什么时候会来的,你不能写一条就关掉,所以需要一直持有。 * 需要使用HDFS 的写文件的 append 模式,不断追加记录。 大量持有文件句柄以及在什么时候释放这些文件句柄都是一件很困难的事情。另外使用 HDF...