数据计算中间件技术综述
上图是大家都很熟悉的基于 Hadoop 体系的开源大数据架构图。在这个架构中,大致可以分成三层。最下一层是数据采集,通常会采用 kafka 或者 Flume 将 web 日志通过消息队列传送到存储层或者计算层。对于数据存储,目前 Apache 社区提供了多种存储引擎的选择,除了传统的 HDFS 文件和 HBase,还提供了 Kudu、ORC、Parquet 等列式存储,大家可以根据自身的需求特点进行选择。在这之上的数据计算层,选择就更丰富了。如果你想做实时推荐,可以采用 Storm、Spark Streaming 这样的流计算引擎对 Kafka 或者 Flume 传递上来的数据进行实时处理。如果你想进行客户画像,可以使用 Mahout 或者 Spark LMlib 里的机器学习算法进行分类。如果你想查看当天的销售排名,可以使用 HBase、Impala 或者 Presto。如果想对某些商品的销售进行比较复杂的漏斗分析,则使用 HIVE 或者 Spark 可能会更合适。 当然,大家根据各自的需求,可以叠加上 Redistribution 缓存,ElasticSearch 全文本搜索,或者...