搜索引擎 HERMES

码农软件 · 软件分类 · 搜索引擎 · 2019-08-26 15:57:47

软件介绍

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

Hermes 使用特点:

1. 一个基于大索引技术的海量数据实时检索分析平台。侧重数据分析。
2. 数据规模从几亿到万亿不等。最小的表也是千万级别。

hermes2.gif (10775 byte)

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使用不当容易内存泄露,而且性能太差。用于分词的相关对象是共用的,减少反复的创建对象和 释放对象

本文地址:https://www.codercto.com/soft/d/13220.html

Python编程实战

Python编程实战

[美] Mark Summerfield / 爱飞翔 / 机械工业出版社 / 2014-8 / 69.00元

《python编程实战:运用设计模式、并发和程序库创建高质量程序》由python开发者社区知名技术专家mark summerfield亲笔撰写,全球资深python专家doug hellmann作序鼎力推荐,是python领域最有影响力的著作之一。书中通过大量实用的范例代码和三个完整的案例研究,全面而系统地讲解了如何运用设计模式来规划代码结构,如何通过并发与cython等技术提升代码执行速度,以及......一起来看看 《Python编程实战》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具