瀚思亮相ES China Conference

2015年11月23日 作者: 瀚思科技

前几天有幸参加Elasticsearch线下交流活动,成都的Conference在天府软件园E3-1-11会议中心举办。ES技术交流大会每年举办一次,分享嘉宾来自国内一线互联网公司,倡导干货接地气纯粹的技术交流,今年已经是在中国举办的第四年。而ES本身也是时下功能十分强大的分布式全文检索引擎,它设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,它让海量数据实时分析成为可能。

今年ES China Conference北京站在中国科学院软件研究所举办,大会去了400多人,演讲者来自百度、新浪等知名互联网公司。而成都是继北京上海之后今年的第三站,虽然人数上相对前两场有所减少,但是好在来了不少牛人,也有很多有名的开源Coder。今年ES China Conference北京站在中国科学院软件研究所举办,大会去了400多人,演讲者来自百度、新浪等知名互联网公司。而成都是继北京上海之后今年的第三站,虽然人数上相对前两场有所减少,但是好在来了不少牛人,也有很多有名的开源Coder。

参会者签名

京东等公司亮相Elasticsearch 百花齐放大放异彩

此次大会围绕Elasticsearch及周边产品和技术,如:kibana\logstash\beats\logging\nlp等相关领域及话题展开讨论。Medcl介绍了Elasticsearch2.0版的新特性,加了很多方便开发管理的插件,还介绍了对一些周边产品的应用,kibana、logstash、beats等等。Elasticsearch2.0 针对存储做了很多优化,主要是新增的2个特性:best_compression压缩选项和默认启用的doc_values。这一改动将使得索引大小比之前小很多(索引只有原始数据的十分之七),也就是说为集群节省15-25%的服务器硬件开销。2.0版本真的非常值得期待。

而来自京东的架构师吴友强介绍了他们的日志收集分析系统,介绍他们如何运维200多台ES服务集群。从splunk到solr最后再到Elasticsearch,京东做了大量的研究和探索。他们的日志收集系统,采用按需建索引的方式,把所有日志数据保存30天,仅在用户需要查询的时候,再建立索引并搜索。并且他们还对建Index的过程进行了优化,提高资源利用率,解决百亿日志搜索问题。

瀚思技术领先 真正实现实时数据分析!

最后介绍一下我们公司关于Elasticsearch的应用和研究,我们的产品分企业版的Enterprise还有SaaS版Dataviewer,这次主要介绍企业版产品的实际部署和应用。先看企业版架构图:

我们先做日志采集存储,数据保存在ES集群当中,然后对数据进异常分析、规则匹配等安全分析处理。在最后提供可视化的界面,提供安全预警、上下文检索等功能,方便安全运维者处理。我们的企业版产品根据实际场景划分两种特殊环境,分别提供针对ms级低延迟实时分析的fast服务还有针对pb级海量数据处理的slow服务。

而对于企业来说,信息泄露事件将会直接导致企业在公众中的威望和信任度下降,会驱使他们改变原有选择倾向。从这里不难推断,信息泄密事件可能会使企业失去一大批已有的或者潜在的客户。

Fast服务结合内存节点把索引性能提升到别人无法达到的水平,系统延迟在200ms以下,EPS更是达到了2w4。具体如何做到的?首先对于大型企业每秒交易量很大,而且他们要求系统能实时分析处理。但是ES在数据入库的时候就已经存在延迟,更别说在数据入库之后,我们拿来分析完毕再返回结果给用户,最后还能把这之间的时间控制在ms级。ES数据入库延迟如图:

可以通过改配置文件来降低ES默认延迟,然而这样就会带来系统吞吐量的减少,治标不治本。我们如何做到不降低系统吞吐量的同时降低系统延迟到ms级,Fast方案成功解决了这一难题:我们采用Ram内存实时节点查询加上Disk非实时集群共同服务的方式,把数据分成相同的两份,一份放到内存节点只管查询,另一份放到非实时集群作为常规存储。而且我们给ES建索引过程配置更多的线程,增加cpu使用率。最终测试结果不但系统吞吐量达到常规方案的2倍以上,而且更重要的是数据查询延迟<200ms,真正实现实时数据分析!

Fast方案部署

而另外一种情况,当用户需要查询几个月之前的数据时,为什么不维护一个超大ES集群?因为ES需要消耗大量的资源,甚至shard数据为空也有很多线程消耗,下面的火焰图是我们实际测量shard消耗资源情况。况且用户更多关注的是实时查询,用户只是偶尔要去查历史数据,消耗大量资源维护这个集群显然不现实。

Shard资源消耗火焰图

而我们的slow方案采用Hadoop结合lucene查询的办法,很好的解决了pb级海量数据分析难题。ES是基于Lucene开发,我们直接抛弃ES,用hadoop对Lucene查询的过程并行计算,避免消耗大量的资源去维护ES集群,同时又能查到PB级以上数据,真是一举多得。测试结果,成功查到几个月的数据,真正做到PB级海量数据分析!

Hadoop结合Lucene查询

两种场景分开处理,我们的Fast和Slow解决了很多常规办法解决不了的用户需求。分享结束,我在台下观众雷鸣般的掌声中感受到了大家的热情,感谢大家的认可,无论是对于我本人的表达还是对于技术本身。

结束的时候已经很晚,大家的热情却依旧没有减退,相互讨论交换名片,一起相约下次大会再见!

组织人员和讲师的合影,里面有牛人!