知识点
相关文章
更多最近更新
更多Lily建立在HBase上的分布式搜索
2019-03-27 01:08|来源: 网路
http://www.lilyproject.org/lily
Lily以NoSQL技术为主题,是建立在云计算上的内容仓库(content repository)。它是基于Apache的 HBase(存储)和Solr(索引/搜索),并提供了大型内容集合存储与检索的解决方案。可运用在 门户网站,内容管理系统,及时搜索,档案应用,文案管理,等等。
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 那帮人考虑使用HBase和Solr作为基础平台纠结了很久,最终给出了一些依据。
BTW:关于上面提到了LinkedIn的Zoie我想多数两句,Zoie跟LinkedIn的其他产品捆绑的非常紧密,导致你如果单一的使用Zoie总会觉得很变扭,而且文档非常少,那篇让人貌似惊喜的中文文档仍然不够详细,只好对Zoie望而却步了。
Lily的整个系统架构由4个主要的部分组成:
1.Zookeeper – 对分布式环境中的状态和配置进行管理,并作为系统中客户端的访问入口。
2.Lily Middleware -由WAL(预写日志)、Message Queue(消息队列)、Indexer(索引策略)、Lily Repository(索引CRUD) 组成。
3.HBase -作为存储单元,最终的消息、索引、数据和二进制数据还是存储在HDFS上。
4.Solr – 建立Lucene框架基础上查询器,并且支持分布式搜索,切片的策略由Lily Middleware中的Indexer部件提供。
如图所示:
废话:
1.Lily相比其他一些分布式搜索工具非常简单,就算你第一次上手30分钟内,也能跑起来一个例子,有空补上一个小例子。
2.Lily在分布式的环境中不能使用Apache的原版Hbase和Hadoop,需要使用改装过的版本,HBase是Lily自己改装的,Hadoop是Cloudera的 0.20.2+737版 。
3.Lily为了简化开发和将来对项目的维护,在代码上使用了Spring作为集成工具。
转自:http://www.javabloger.com/article/lily-hbase-solr-lucene-zookeeper.html
转自:http://www.cnblogs.com/langke93/archive/2012/01/09/2317064
相关问答
更多-
spark 怎么实现对hbase分布式计算[2023-01-21]
由于spark提供的hbaseTest是scala版本,并没有提供java版。我将scala版本改为java版本,并根据数据做了些计算操作。 程序目的:查询出hbase满足条件的用户,统计各个等级个数。 代码如下,西面使用的hbase是0.94注释已经写详细: package com.sdyc.ndspark.sys; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org ... -
hbase分布式部署多少台机器[2023-11-29]
对于分布式操作,一般来说有以下两种实现选择: 1、 在每个节点上使用单独的事务,只实现弱一致性。 2、 使用2PC保证强一致性。即分布式事务协调者先要求所有参与节点PREPARE,大家都说PREPARE成功后,再要求所有节点COMMIT。只要有一个节点PREP... -
软件开发中经常提到一个分布式这个词,请问什么是分布式开发[2023-11-11]
现在的软件开发都讲究个"层"的意思. 分布式开发将一个系统分为三个层次:客户端应用程序,应用程序服务器,后台数据库。客户端提出请求,应用服务器接受请求并处理然后返回数据给客户端,后台数据库当然是提供数据。多半是用于WEB开发.这样的分层开发有很多 好处..我就不多说了... -
分布式到底是什么意思[2023-07-24]
这个比较复杂,这个属于架构方面的,大概是指客户端和服务器端的关系。以前的程序的服务端比较集中在一块,分布式的服务器端可能分布在不同的地方,如云端等等。。。 -
什么是分布式系统?[2022-11-11]
一、DFS为何物? DFS 即微软分布式文件系统的简称,系统管理员可以利用它来有效的整合网络资源,并把这些资源以单一的层次结构呈现给网络用户。管理员利用它可以把资源发布成一 个树形结构,这样大大简化了为用户进行资源配置和对资源管理的工作量。我们可以在不同的机器上调整和移动文件,这不会影响到用户的访问。 二、为什么要使用DES? 1、DFS使用了现有网络中的Share权限,管理员不必进行新的配置 2、通过一个DFS树形结构用户就可以访问多个网络资源,而不用再把远程驱动器映射到本地共享资源中。 3、DFS可以配 ... -
什么是分布式系统?[2024-03-23]
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。 故名思义,分布式 ... -
Hbase和分布式前缀树(Hbase and distributed prefix tree)[2022-10-18]
也许你的“大师”概念与HMaster并不完全相同。 HMaster用于管理目的,例如标识哪个RegionServer包含给定表的给定行集的Region。 任何表的行中的所有数据都将位于RegionServer的内部。 向RegionServers读取数据/从RegionServers写入数据是在没有与HMaster进行任何交互的情况下完成的,除了确定行所在的服务器。 回到“master”vs“slaves”机器拓扑:您可能决定将序列前缀存储为单独的表。 然后,可以与子前缀树分开管理用于前缀的RegionSe ... -
使用solrj进行分布式搜索?(Distributed search using solrj?)[2023-04-18]
假设您的分片是: “localhost:8983 / solr”和“localhost:7574 / solr” 您可以使用solrj执行分布式搜索,例如: String shards = "localhost:8983/solr,localhost:7574/solr"; StringBuffer request = new StringBuffer(); request.append("&q=" + query); request.append("&shards=" + shards); SolrPar ... -
我删除了/ etc / hosts中与127.0.0.1相关的所有条目并将hdfs-site.xml复制到所有节点中的$ HBASE_HOME / conf之后,问题得以解决 The problem solved after I removed all entries related to 127.0.0.1 in /etc/hosts and copied the hdfs-site.xml to $HBASE_HOME/conf in all nodes
-
如何使用Docker在完全分布式模式下配置Hbase集群(How to configure an Hbase cluster in fully distributed mode using Docker)[2022-05-20]
我发现我使用的是Docker版本1.8.2完全删除Docker然后安装旧版本(1.7.0)然后我的脚本正常运行 I found out that I'm using Docker version 1.8.2 After fully remove Docker then install the older one (1.7.0) then my script run normally