数据源部分,Hermes是携程框架部门提供的消息队列,基于Kafka和MySQL做为底层实现的封装,应用于系统间实时数据传输交互通道。Hive和HDFS是携程海量数据的主要存储,两者来自Hadoop生态体系。Hadoop大家已经很熟悉,如果不熟悉的同学只要知道Hadoop主要用于大数据量存储和并行计算批处理工作。
Hive是基于Hadoop平台的数据仓库,沿用了关系型数据库的很多概念。比如说数据库和表,还有一套近似于SQL的查询接口的支持,在Hive里叫做HQL,但是其底层的实现细节和关系型数据库完全不一样,Hive底层所有的计算都是基于MR来完成,我们的数据工程师90%都数据处理工作都基于它来完成。
离线部分,包含的模块有MR、Hive、Mahout、SparkQL/MLLib。Hive上面已经介绍过,Mahout简单理解提供基于Hadoop平台进行数据挖掘的一些机器学习的算法包。Spark类似hadoop也是提供大数据并行批量处理平台,但是它是基于内存的。SparkQL 和Spark MLLib是基于Spark平台的SQL查询引擎和数据挖掘相关算法框架。我们主要用Mahout和Spark MLLib进行数据挖掘工作。
调度系统zeus,是淘宝开源大数据平台调度系统,于2015年引进到携程,之后我们进行了重构和功能升级,做为携程大数据平台的作业调度平台。
近线部分,是基于Muise来实现我们的近实时的计算场景,Muise是也是携程OPS提供的实时计算流处理平台,内部是基于Storm实现与HERMES消息队列搭配起来使用。例如,我们使用MUSIE通过消费来自消息队列里的用户实时行为,订单记录,结合画像等一起基础数据,经一系列复杂的规则和算法,实时的识别出用户的行程意图。