-
Notifications
You must be signed in to change notification settings - Fork 51
topology
每天增量的形式在hadoop进群中将索引创建好,然后蓝鲸集群从hadoop中将索引下载到本地,提供OLAP服务
- 索引是进行分区的,比如说按照 每个月的上中下旬进行分区,如下所示
......
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2012101
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2012102
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2012103
......
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013011
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013012
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013021
- 单独的某一个分区索引是按照事先设定的shards进行打散的,将来查询的时候会分发到不同的solr shards中区
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013/part-00000
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013/part-00001
......
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013/part-00017
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013/part-00018
/group/taobao/external/p4p/p4padhoc/tablelist/cust/index/2013013/part-00019
- 单独一个分区的创建流程如下图所示
一个分为两次mapreduce,
第一次mapreduce是先在内存中创建小索引,当内存中的索引大小超过设定的值的时候,将内存中的索引dump到hdfs中区,当所有索引创建完成后,在将这些内存中的小索引合并成1个
第二次是讲这些在hdfs中的小索引,进一步合并生成最终的索引
海狗的查询逻辑是建立在蓝鲸系统之上的,任务的关联,心跳恢复都是通过蓝鲸完成,具体的任务类型主要有如下两种
- solr shard
用来提供基本的查询和统计服务,通常一个表会有40个左右的solr shard提供服务
每个shard下是进行分区的,每个分区对应不同的索引,故在查询的时候需要设定分区
- Merge server(MS)
最终是合并来自多个shards的查询结果,merge server是多级的,但最终只有一个顶层的MS用于返回给client最终结果,但是考虑到效率问题,我们原则上不超过2级