首页 数据库 mysql教程 Hermes与开源的Solr、ElasticSearch的不同

Hermes与开源的Solr、ElasticSearch的不同

Jun 07, 2016 pm 04:12 PM
elasticsearch solr 开源

Hermes与开源的Solr、ElasticSearch的不同 谈到Hermes的索引技术,相信很多同学都会想到Solr、ElasticSearch。Solr、ElasticSearch在真可谓是大名鼎鼎,是两个顶级项目,最近有些同学经常问我,开源世界有Solr、ElasticSearch为什么还要使用Hermes? 在回答这

Hermes与开源的Solr、ElasticSearch的不同

谈到Hermes的索引技术,相信很多同学都会想到Solr、ElasticSearch。Solr、ElasticSearch在真可谓是大名鼎鼎,是两个顶级项目,最近有些同学经常问我,“开源世界有Solr、ElasticSearch为什么还要使用Hermes?”

在回答这个问题之前,大家可以思考一个问题,既然已经有了Oracle、MySQL等数据库为什么大家还要使用Hadoo[下的Hive、Spark? Oracle和MySQL也有集群版,也可以分布式,那Hadoop与Hive的出现是不是多余的?

Hermes的出现,并不是为了替代Solr、ES的,就像Hadoop的出现并不是为了干掉Oracle和MySQL一样。而是为了满足不同层面的需求。

一、Hermes与Solr,ES定位不同

Solr\ES :偏重于为小规模的数据提供全文检索服务;Hermes:则更倾向于为大规模的数据仓库提供索引支持,为大规模数据仓库提供即席分析的解决方案,并降低数据仓库的成本,Hermes数据量更“大”。

Solr、ES的使用特点如下:

1. 源自搜索引擎,侧重搜索与全文检索。

2. 数据规模从几百万到千万不等,数据量过亿的集群特别少。

Ps:有可能存在个别系统数据量过亿,但这并不是普遍现象(就像Oracle的表里的数据规模有可能超过Hive里一样,但需要小型机)。

Hermes:的使用特点如下:

1. 一个基于大索引技术的海量数据实时检索分析平台。侧重数据分析。

2. 数据规模从几亿到万亿不等。最小的表也是千万级别。

在 腾讯17 台TS5机器,就可以处理每天450亿的数据(每条数据1kb左右),数据可以保存一个月之久。

二、Hermes与Solr,ES在技术实现上也会有一些区别

Solr、ES在大索引上存在的问题:

1. 一级跳跃表是完全Load在内存中的。

这种方式需要消耗很多内存不说,首次打开索引的加载速度会特别慢.

在Solr\ES中的索引是一直处于打开状态的,不会频繁的打开与关闭;

这种模式会制约一台机器的索引数量与索引规模,通常一台机器固定负责某个业务的索引。

2. 为了排序,将列的全部值Load到放到内存里。

排序和统计(sum,max,min)的时候,是通过遍历倒排表,将某一列的全部值都Load到内存里,然后基于内存数据进行统计,即使一次查询只会用到其中的一条记录,也会将整列的全部值都Load到内存里,太浪费资源,首次查询的性能太差。

数据规模受物理内存限制很大,索引规模上千万后OOM是常事。

3. 索引存储在本地硬盘,恢复难

一旦机器损坏,数据即使没有丢失,一个几T的索引,仅仅数据copy时间就需要好几个小时才能搞定。

4. 集群规模太小

支持Master/Slave模式,但是跟传统MySQL数据库一样,集群规模并没有特别大的(百台以内)。这种模式处理集群规模受限外,每次扩容的数据迁移将是一件非常痛苦的事情,数据迁移时间太久。

5. 数据倾斜问题

倒排检索即使某个词语存在数据倾斜,因数据量比较小,也可以将全部的doc list都读取过来(比如说男、女),这个doc list会占用较大的内存进行Cache,当然在数据规模较小的情况下占用内存不是特别多,查询命中率很高,会提升检索速度,但是数据规模上来后,这里的内存问题越来越严重。

6. 节点和数据规模受限

Merger Server只能是一个,制约了查询的节点数量;数据不能进行动态分区,数据规模上来后单个索引太大。

7. 高并发导入的情况下, GC占用CPU太高,多线程并发性能上不去。

AttributeSource使用了WeakHashMap来管理类的实例化,并使用了全局锁,无论加了多大的线程,导入性能上不去。

AttributeSource与NumbericField,使用了大量的LinkHashMap以及很多无用的对象,导致每一条记录都要在内存中创建很多无用的对象,造成了JVM要频繁的回收这些对象,CPU消耗过高。

FieldCacheImpl使用的WeakHashMap有BUG,大数据的情况下有OOM的风险。

单机导入性能在笔者的环境下(1kb的记录每台机器想突破2w/s 很难)

Solr与ES小结

并不是说Solr与ES的这种方式不好,在数据规模较小的情况下,Solr的这种处理方式表现优越,并发性能较好,Cache利用率较高,事实证明在生产领域Solr和ES是非常稳定的,并且性能也很卓越;但是在数据规模较大,并且数据在频繁的实时导入的情况下,就需要进行一些优化。

Hermes在索引上的改进:

1. 索引按需加载

大部分的索引处于关闭状态,只有真正用到索引才会去打开;一级跳跃表采用按需Load,并不会Load整个跳跃表,用来节省内存和提高打开索引的速度。Hermes经常会根据业务的不同动态的打开不同的索引,关闭那些不经常使用的索引,这样同样一台机器,可以被多种不同的业务所使用,机器利用率高。

2. 排序和统计按需加载

排序和统计并不会使用数据的真实值,而是通过标签技术将大数据转换成占用内存很小的数据标签,占用内存是原先的几十分之一。

另外不会将这个列的全部值都Load到内存里,而是用到哪些数据Load哪些数据,依然是按需Load。不用了的数据会从内存里移除。

3. 索引存储在HDFS中

理论上只要HDFS有空间,就可以不断的添加索引,索引规模不在严重受机器的物理内存和物理磁盘的限制。容灾和数据迁移容易得多。

4. 采用Gaia进行进程管理(腾讯版的Yarn)

数据在HDFS中,集群规模和扩容都是一件很容易的事情,Gaia在腾讯集群规模已达万台)。

5. 采用多条件组合跳跃降低数据倾斜

如果某个词语存在数据倾斜,则会与其他条件组合进行跳跃合并(参考doclist的skip list资料)。

6. 多级Merger与自定义分区

7. GC上进行了一些优化

自己进行内存管理,关键地方的内存对象的创建和释放java内部自己控制,减少GC的压力(类似Hbase的Block Buffer Cache)。

不使用WeakHashMap和全局锁,WeakHashMap使用不当容易内存泄露,而且性能太差。

用于分词的相关对象是共用的,减少反复的创建对象和释放对象。

1kb大小的数据,在笔者的环境下,一台机器每秒能处理4~8W条记录.

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1419
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
十个推荐开源免费文本标注工具 十个推荐开源免费文本标注工具 Mar 26, 2024 pm 08:20 PM

文本标注工作是将标签或标记与文本中特定内容相对应的工作。其主要目的是为文本提供额外的信息,以便进行更深入的分析和处理,尤其是在人工智能领域。文本标注对于人工智能应用中的监督机器学习任务至关重要。用于训练AI模型,有助更准确地理解自然语言文本信息,提高文本分类、情感分析和语言翻译等任务的性能。通过文本标注,我们可以教AI模型识别文本中的实体、理解上下文,并在出现新的类似数据时做出准确的预测。本文主要推荐一些较好的开源文本标注工具。1.LabelStudiohttps://github.com/Hu

15个值得推荐的开源免费图像标注工具 15个值得推荐的开源免费图像标注工具 Mar 28, 2024 pm 01:21 PM

图像标注是将标签或描述性信息与图像相关联的过程,以赋予图像内容更深层次的含义和解释。这一过程对于机器学习至关重要,它有助于训练视觉模型以更准确地识别图像中的各个元素。通过为图像添加标注,使得计算机能够理解图像背后的语义和上下文,从而提高对图像内容的理解和分析能力。图像标注的应用范围广泛,涵盖了许多领域,如计算机视觉、自然语言处理和图视觉模型具有广泛的应用领域,例如,辅助车辆识别道路上的障碍物,帮助疾病的检测和诊断通过医学图像识别。本文主要推荐一些较好的开源免费的图像标注工具。1.Makesens

推荐:优秀JS开源人脸检测识别项目 推荐:优秀JS开源人脸检测识别项目 Apr 03, 2024 am 11:55 AM

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

阿里7B多模态文档理解大模型拿下新SOTA 阿里7B多模态文档理解大模型拿下新SOTA Apr 02, 2024 am 11:31 AM

多模态文档理解能力新SOTA!阿里mPLUG团队发布最新开源工作mPLUG-DocOwl1.5,针对高分辨率图片文字识别、通用文档结构理解、指令遵循、外部知识引入四大挑战,提出了一系列解决方案。话不多说,先来看效果。复杂结构的图表一键识别转换为Markdown格式:不同样式的图表都可以:更细节的文字识别和定位也能轻松搞定:还能对文档理解给出详细解释:要知道,“文档理解”目前是大语言模型实现落地的一个重要场景,市面上有很多辅助文档阅读的产品,有的主要通过OCR系统进行文字识别,配合LLM进行文字理

1.3ms耗时!清华最新开源移动端神经网络架构 RepViT 1.3ms耗时!清华最新开源移动端神经网络架构 RepViT Mar 11, 2024 pm 12:07 PM

论文地址:https://arxiv.org/abs/2307.09283代码地址:https://github.com/THU-MIG/RepViTRepViT在移动端ViT架构中表现出色,展现出显着的优势。接下来,我们将探讨本研究的贡献所在。文中提到,轻量级ViTs通常比轻量级CNNs在视觉任务上表现得更好,这主要归功于它们的多头自注意力模块(MSHA)可以让模型学习全局表示。然而,轻量级ViTs和轻量级CNNs之间的架构差异尚未得到充分研究。在这项研究中,作者们通过整合轻量级ViTs的有效

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源 单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源 Apr 29, 2024 pm 04:55 PM

FP8和更低的浮点数量化精度,不再是H100的“专利”了!老黄想让大家用INT8/INT4,微软DeepSpeed团队在没有英伟达官方支持的条件下,硬生生在A100上跑起FP6。测试结果表明,新方法TC-FPx在A100上的FP6量化,速度接近甚至偶尔超过INT4,而且拥有比后者更高的精度。在此基础之上,还有端到端的大模型支持,目前已经开源并集成到了DeepSpeed等深度学习推理框架中。这一成果对大模型的加速效果也是立竿见影——在这种框架下用单卡跑Llama,吞吐量比双卡还要高2.65倍。一名

刚刚发布!一键生成动漫风格图片的开源模型 刚刚发布!一键生成动漫风格图片的开源模型 Apr 08, 2024 pm 06:01 PM

向大家介绍一个最新的AIGC开源项目——AnimagineXL3.1。这个项目是动漫主题文本到图像模型的最新迭代,旨在为用户提供更加优化和强大的动漫图像生成体验。在AnimagineXL3.1中,开发团队着重优化了几个关键方面,以确保模型在性能和功能上达到新的高度。首先,他们扩展了训练数据,不仅包括了之前版本中的游戏角色数据,还加入许多其他知名动漫系列的数据纳入训练集中。这一举措丰富了模型的知识库,使其能够更全面地理解各种动漫风格和角色。AnimagineXL3.1引入了一组新的特殊标签和美学标

国产开源MoE指标炸裂:GPT-4级别能力,API价格仅百分之一 国产开源MoE指标炸裂:GPT-4级别能力,API价格仅百分之一 May 07, 2024 pm 05:34 PM

最新国产开源MoE大模型,刚刚亮相就火了。DeepSeek-V2性能达GPT-4级别,但开源、可免费商用、API价格仅为GPT-4-Turbo的百分之一。因此一经发布,立马引发不小讨论。图片通过公布的性能指标来看,DeepSeekV2的中文综合能力超越一众开源模型,同时GPT-4Turbo、文快4.0等闭源模型同处第一梯队。英文综合能力也和LLaMA3-70B同处第一梯队,并且超过了同是MoE的Mixtral8x22B。在知识、数学、推理、编程等方面也表现出不错性能。并支持128K上下文。图片这

See all articles