搜尋
首頁資料庫mysql教程Lily-建立在HBase上的分布式搜索

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–

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
理解Linux中建立链接文件的重要性理解Linux中建立链接文件的重要性Feb 22, 2024 pm 07:24 PM

标题:深入探讨Linux中建立链接文件的重要性与示例在Linux操作系统中,链接文件是一种非常有用的概念,它可以帮助用户更好地组织和管理文件系统中的数据,提高文件的可访问性和灵活性。理解如何在Linux中建立链接文件,对于系统管理员和开发人员来说是至关重要的。本文将深入探讨Linux中建立链接文件的重要性,并通过具体的代码示例来演示其用法和作用。1.什么是

Pandas 与 PySpark 强强联手,功能与速度齐飞!Pandas 与 PySpark 强强联手,功能与速度齐飞!May 01, 2023 pm 09:19 PM

​使用Python做数据处理的数据科学家或数据从业者,对数据科学包pandas并不陌生,也不乏像云朵君一样的pandas重度使用者,项目开始写的第一行代码,大多是importpandasaspd。pandas做数据处理可以说是yyds!而他的缺点也是非常明显,pandas只能单机处理,它不能随数据量线性伸缩。例如,如果pandas试图读取的数据集大于一台机器的可用内存,则会因内存不足而失败。另外​pandas在处理大型​数据方面非常慢,虽然有像Dask或Vaex等其他库来优化提升数

如何创建mdf文件如何创建mdf文件Feb 18, 2024 pm 01:36 PM

MDF文件是一种常见的数据库文件格式,它是MicrosoftSQLServer数据库的主要文件之一。在数据库管理系统中,MDF文件用于保存数据库的主要数据,包括表、索引、存储过程等。建立MDF文件是创建数据库的关键步骤之一,下面将介绍一些常见的方法。使用SQLServerManagementStudio(SSMS)SQLServerManag

怎么建微信群 微信建群怎么操作怎么建微信群 微信建群怎么操作Feb 22, 2024 pm 03:46 PM

在主页选择加号按钮,接下来选择发起群聊,勾选要建群的联系人后完成即可。教程适用型号:iPhone13系统:IOS15.3版本:微信8.0.20解析1首先打开微信,在主页中点击右上角的加号按钮。2接下来在弹出的窗口中点击发起群聊选项。3最后在页面中勾选要建群的联系人后点击完成即可。补充:微信群聊是什么东西1微信聊天群就是腾讯企开发的一种多人聊天沟通交流的网络平台,我们可以借助互联网迅速传送语音信息、短视频、高清图片和文字内容。还可以借助微信与朋友开展形式上更为丰富多彩的类似短消息、手机彩信等形式的

在Beego中使用Hadoop和HBase进行大数据存储和查询在Beego中使用Hadoop和HBase进行大数据存储和查询Jun 22, 2023 am 10:21 AM

随着大数据时代的到来,数据处理和存储变得越来越重要,如何高效地管理和分析大量的数据也成为企业面临的挑战。Hadoop和HBase作为Apache基金会的两个项目,为大数据存储和分析提供了一种解决方案。本文将介绍如何在Beego中使用Hadoop和HBase进行大数据存储和查询。一、Hadoop和HBase简介Hadoop是一个开源的分布式存储和计算系统,它可

PHP中的分布式数据中心PHP中的分布式数据中心May 23, 2023 pm 11:40 PM

随着互联网的快速发展,网站的访问量也在不断增长。为了满足这一需求,我们需要构建高可用性的系统。分布式数据中心就是这样一个系统,它将各个数据中心的负载分散到不同的服务器上,增加系统的稳定性和可扩展性。在PHP开发中,我们也可以通过一些技术实现分布式数据中心。分布式缓存分布式缓存是互联网分布式应用中最常用的技术之一。它将数据缓存在多个节点上,提高数据的访问速度和

使用Redis实现分布式计数器使用Redis实现分布式计数器May 11, 2023 am 08:06 AM

什么是分布式计数器?在分布式系统中,多个节点之间需要对共同的状态进行更新和读取,而计数器是其中一种应用最广泛的状态之一。通俗地讲,计数器就是一个变量,每次被访问时其值就会加1或减1,用于跟踪某个系统进展的指标。而分布式计数器则指的是在分布式环境下对计数器进行操作和管理。为什么要使用Redis实现分布式计数器?随着分布式计算的普及,分布式系统中的许多细节问题也

分布式系统必须知道的一个共识算法:Raft分布式系统必须知道的一个共识算法:RaftApr 07, 2023 pm 05:54 PM

一、Raft 概述​​Raft 算法​​​是分布式系统开发首选的​​共识算法​​。比如现在流行 Etcd、Consul。如果​​掌握​​​了这个算法,就可以较容易地处理绝大部分场景的​​容错​​​和​​一致性​​需求。比如分布式配置系统、分布式 NoSQL 存储等等,轻松突破系统的单机限制。Raft 算法是通过一切以领导者为准的方式,实现一系列值的共识和各节点日志的一致。二、Raft 角色2.1 角色跟随者(Follower):​​普通群众​​,默默接收和来自领导者的消息,当领导者心跳信息超时的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),