http://www.javabloger.com/article/lily-hbase-solr-lucene-zookeeper.html



19 一月, 2011 (03:16) | HBase, lucene, zookeeper, 云计算, 分布式, 架构设计繁体English   DeliciOus    【分享到新浪微博
作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.javabloger.com/article/lily-hbase-solr-lucene-zookeeper.html
豆瓣读书 向你推荐有关 HBaselucenezookeeper云计算分布式架构设计、类别的图书。

 

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进行集成。
 

 


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐