Heim  >  Artikel  >  Datenbank  >  Lily-建立在HBase上的分布式搜索

Lily-建立在HBase上的分布式搜索

WBOY
WBOYOriginal
2016-06-07 16:26:181148Durchsuche

Lily以NoSQL技术为主题,是建立在云计算上的内容仓库(content repository)。它是基于Apache的 HBase(存储)和Solr(索引/搜索),并提供了大型内容集合存储与检索的解决方案。可运用在 门户网站,内容管理系统,及时搜索,档案应用,文案管理,等等。 Lily项目

Lily以NoSQL技术为主题,是建立在云计算上的内容仓库(content repository)。它是基于Apache的 HBase(存储)和Solr(索引/搜索),并提供了大型内容集合存储与检索的解决方案。可运用在 门户网站,内容管理系统,及时搜索,档案应用,文案管理,等等。

Lily simple architecture diagram

Lily项目与传统的Lucene框架相比体现了以下几点关键性的优势:
    ·伸缩性  –> sharding/MapReduce
    ·可用性
  –> replication
    ·及时性  –> real-time update index
    ·容错性  –> no SPFO

另外,Lily 借用了Apache的 HBase进行存储 ,Solr进行Index/Search;
            Lily 重新构建大数量的索引Lily会采用MapReduce把索引当做文件切在HDFS上;
            Lily 索引更新时切换并没有像LinkedIn的Zoie那样保存在内存里,Lily在Hbase上建立了secondary indexes;
            Lily 在建立索引的结构方面 借鉴了Google App Engine的索引设计思想;
            Lily 提供REST 和 API 2种方式提供客户端调用;
           

BTW:关于上面提到了LinkedIn的Zoie我想多数两句,Zoie跟LinkedIn的其他产品捆绑的非常紧密,导致你如果单一的使用Zoie总会觉得很变扭,而且文档非常少,那篇让人貌似惊喜的中文文档仍然不够详细,只好对Zoie望而却步了。

Lily的系统架构由4个主要的部分组成:
    1.Zookeeper – 对分布式环境中的状态和配置进行管理,让Client可以知道当前有多少个工作的 Lily Node。
    2.Lily Node – a)WAL(预写日志)、b)Message Queue(消息队列)、c)Indexer(索引策略)、d)Lily Repository(索引CRUD) 组成。
    3.HBase -作为存储单元,最终的消息、索引、数据和二进制数据还是存储在HDFS上。
    4.Solr – 建立Lucene框架基础上查询器,并且支持分布式搜索,切片的策略由Lily Middleware中的Indexer部件提供。
    5.Client-客户端的访问入口基于Avro的协议(类似于PB)操作Repository,

如图所示:

 lily architecture

废话1:
         1.Lily 提供了快速入门的模拟集群工具(Minicluster),不需要搭建HBase/Hadoop/Zookeeper环境,只要有JDK你第一次上手20分钟内也能跑起来一个例子。
         2.Lily 在分布式的环境中不能使用Apache的原版Hbase和Hadoop,需要使用改装过的版本,HBase是Lily自己改装的,Hadoop是Cloudera的 0.20.2+737版 。
         3.Lily 为了简化开发和将来对项目的维护,在代码上使用了Spring作为集成工具。
         4.Lily 考虑使用HBase和Solr作为基础平台纠结了很久,最终给出了一些依据。
       
废话2:
    1.zookeeper作为JEE分布架构中最上层防止单点(SPFO)系统接口是不错的选择,不仅是Lily在这样做,HBase本身也是这样。
    2.分布式搜索中需要异步架构的支撑,消息中间件是最佳的选择,用来对索引进行CRUD和挂起的操作。
    3.对于大数量的索引合并和更新是MapReduce实战才能的时候了。
    4.通过Lily项目对于HBase的使用场景又有了新的参考。
        
废话3:
         1.Srping也对云计算的话题蠢蠢欲动,Spring Framework HBase Template  列入计划中。
         2.在众多HBase ORM中pigi 算是不错的一个,使用简单,Pigi Project 。
         3.JMXToolkit 可以对HBase进行监控,并且可以和Cacti、Nagios进行集成。
 

相关文章:
MySQL向Hive/HBase的迁移工具
HBase入门5(集群) -压力分载与失效转发
Hive入门3–Hive与HBase的整合
HBase入门篇4
HBase入门篇3
HBase入门篇2-Java操作HBase例子
HBase入门篇
基于Hbase存储的分布式消息(IM)系统-JABase

–end–

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn