码迷,mamicode.com
首页 > 其他好文 > 详细

Elasticsearch日志分析系统

时间:2017-10-28 01:07:15      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:https   转移   服务器   ima   基本   div   而在   shard   images   

                          Elasticsearch日志分析系统

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

 

一.什么是Elasticsearch
  一个采用Restful API标准的高扩展性的和高可用性的实时数据分析的全文搜索工具。高扩展性体现在Elasticsearch添加节点非常简单,基本新的节点无需做复杂的配置,接入Elasticsearch的集群就可以了,自动会被发现;高可用体现在Elasticsearch它是分布式的,每个节点它都有备份,所以down一两个节点不会出现任何问题的;实时数据分析体现在Elasticsearch它是试试的搜索平台,同时它支持PB级的这种大数据的搜索能力,从索引的一个文档到这个文档能被搜索到的时间只有一个轻微的延迟,通常是一秒,所以说它的实时性是非常高的。Elasticsearch是基于P2P的系统。它首先通过广播的机制讯早存在的节点,然后再通过这个多播协议来进行节点间的通信,同时也支持点对点的交互。
 
二.Elasticsearch的主要概念
1 Node(节点):单个的装有Elasticsearch服务并且提供故障转移和扩展的服务器。
2 Cluster(集群):一个集群就是由一个或多个node组织在一起,共同工作,共同分享整个数据具有负载均衡功能的集群。
3 Document(文档):一个文档是可以被索引的基础信息单元。
4 Index(索引):索引就是一个拥有几分相似特征的文档的集合。
5 Type(类型):一个索引中,你可以定义一种或多种类型。
6 Field(列):Field是Elasticsearchd的最小单位,相当于数据的某一列。
7 Shards(分片):Elasticsearch将索引分成若干份,每个部门就是一个shard。
8 Replicas(复制):Replicas是索引一份或多份拷贝。

 

三.Elasticsearch对应数据库的关系

技术分享
  我们知道Elasticsearch是NSQL,是非关系型数据库,它的Index对应关系型数据库(如MySQL)的Database,Type类型对应的就是Table,Document对应的就是Row,而Filed对应的就是Column等等。
 
四.Elasticsearch架构
技术分享
  这幅图我们先从下往上看,底层是Gateway,这个gateway就是Elasticsearch支持的索引数据的存储格式。当这个Elasticsearch关闭再启动的时候,它就会从这个gateway里面多去索引数据。图中我们可以清晰的看到它支持的一些格式,有本地的Loacal FileSystem。还有分布式的Sharad FileSeystem,当然还支持当前比较流行的Hadoop HDFS还有一些亚马逊的S3等等。
  那么接下来Gateway上面这层就是Lucenne的框架。这个Elasticsearch就是基于Lucenne这个框架而写的。
  而在Lucenne在往上就是这个Elasticsearch对数据的加工处理方式了。我们可以看到有创建index的模块,还有搜索的模块以及mapping(定义索引下面type字段的处理规则,比如说索引如何建立,还有索引数据类型等等。相当于这个关系型数据库里的schema。)和River(它是一个运行在Elasticsearch集群内部的一个插件,主要就是用来从外部获取异构数据,然后在Elasticsearch里创建索引,常见的插件有RabbitMQ River还有Twitter River)模块。
  再往上一层的第一块就是Elasticsearch自动发现节点的机制(Discovery),这个Zen是用来实现节点自动发现,还有Master节点选取用的。加入Master出现了故障,不能工作了,那么其他的这个节点会自动选举,然后产生一个新的Master。Scripting这块区域是Elasticsearch的脚本执行功能。有了这个功能就可以很方便对查询出来的数据进行加工处理,它支持mvel,js,python,Etc这样的脚本类型。那么最右边的这个3rd Plugins,它的意思说Elasticsearch支持安装很多第三方的插件(比如:中文分词,状态监控这样的插件等等,插件安装也非常简单)。因为Elasticsearch的社区支持力度是比较大的,所以说会有很多种插件提供给用户使用。这样就会让Elasticsearch使用的就更加的简单方便。
  再往上一层就是正数第二次就是Elasticsearch的交互方式了。外面可以看到有三种协议,Thrift,Memcached和HTTP,默认Elasticsearch是用HTTP协议传输的。
  最顶层就是Elasticsearch的API支持ID模式了,闲杂这个RESTful这样的API接口的标准是非常流行的,所以说Elasticsearch也采用了这种标准,Elasticsearch可以支持JAVA语言,同时JAVA语言也是对Elasticsearch支持度最好的语言。因为Lucenn也是用JAVA开发的。通过JAVA当前最流行的这种开发语言,可以很好的开发处一套工具去管理和操作这个Elasticsearch。
 
 
 五.对比Elasticsearch与Solr
  当前采用Elasticsearch这个搜索引擎的公司特别多,包括有名的Adobe,ebay,微软,Facebook,orange,Mozilla等等。同比跟Elasticsearch这样同性质的工具也有很多,比如说solr和splunk等等。下面有一张2015年8月的搜索引起排行榜:
 技术分享
  我们可以看到Solr排行是第一的,当这个Elasticsearch也是名列前茅,处于第二代位置,它的使用率还是挺高的。Solr和Elasticsearch都是全文搜索比较火的引擎,他们有什么相同点和不同点呢?
Elasticsearch侧重实时数据分析,solr在这一方面是远不及Elasticsearch的。当然,Solr支持文本格式比Elasticsearch多:比如:html,pdf,word,excel,cvs等等。而Elasticsearch只支持json的格式。所以大家在选择工具的同时,也要根据自己项目的情况去选择。这样才有利于我们项目的开展。
  Elasticsearch的官网地址:https://www.elastic.co/products/elasticsearch
 
 
 

Elasticsearch日志分析系统

标签:https   转移   服务器   ima   基本   div   而在   shard   images   

原文地址:http://www.cnblogs.com/yinzhengjie/p/7745743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!