您的位置:首页 > 其它

17.ELK实时日志分析平台之Elasticsearch简介

2016-03-15 21:59 295 查看
Elasticsearch是一个高度灵活的开源全文检索和分析引擎。它能够迅速(几乎是实时地)地存储、查找和分析大规模数据。通常被用在有复杂的搜索要求的系统中。比如:

在电子商务系统中用户搜索商品,可以使用Elasticsearch存储产品目录后为客户提供搜索接口。

如果要收集日志或交易信息,然后分析这些数据得到有价值信息,可以先使用Logstash收集、聚合、解析这些数据,然后存入Elasticsearch,利用Elasticsearch即可以挖掘有价值信息。

在商业数据分析领域,如果想要对海量数据进行实时的分析,将分析结果可视化,可以先将数据存入Elasticsearch,然后借助Kibana即可导出各种有用数据。

下面介绍Elasticsearch中几个基本概念:

Near Realtime(NRT):Elasticsearch是一个接近实时的查询平台,数据从被索引到可被搜索大概有1秒的延时。

Cluster:集群是共同存储数据且提供索引和查询能力的节点的集合。每个集群由一个唯一的名字标识,默认是elasticsearch。但是多个集群之间注意不要有重复的名字。一个集群中可以只包含一个节点。

Node:节点是集群中的一个服务器,用于存储数据,参与集群的索引和查询。节点有自己的名字,默认是一个随机的名字。指定节点名字在对集群的管理中非常重要,可以方便的根据名字知道是集群中哪一个节点。可以为节点指定一个集群名字,表示节点加入到这个集群中,默认都是加入elasticsearch这个集群。所以,在一个各个节点可以互通的网络中,如果未对节点指定集群名字,则默认所有节点均加入elasticsearch集群中(自动发现)。

Index:索引是有相似特征的数据项的集合。比如有顾客数据的索引,产品名录的索引,订单的索引等等。索引由全部是小写字母组成的名字标识,在建立索引、查找、更新、删除数据项的时候都会用到这个名字。在一个集群上,可以定义任意多的索引。

Type:在索引中,可以定义多个类型,类型可以看作索引的一个逻辑上的分类,其语义可以自己定义。假如在一个博客系统中所有的信息存储在一个单独的索引中,可以为用户数据定义一个类型,为博客数据定义一个类型,再为评论数据定义一个类型。

Document: document是一个可以被索引的基本的信息集合。例如,可以有某个顾客的document,某个产品的document,某个订单的document。Document以JSON的格式存在,在某一个索引/类型下,可以存储任意多的document。

Shard&Replicas:大数据时代,一个索引下面存储的数据很容易超过一个节点的存储能力,或者即使不超出,可能会对查询的性能造成影响。通过Elasticsearch可以在定义一个索引时指定将索引分为多个shard(碎片)的个数,每个碎片都是一个全功能的独立的“索引”,可以分布在集群中任意一个节点上。在企业级系统中,高可靠性至关重要,为了提高故障恢复能力,Elasticsearch允许对shard进行备份,称为replica shard或者简称replica。并且针对一个shard,可以有多个replica,但是请不要把replica和它的源shard(称为primary shard)放在一台机器上。索引建立后,replica的数量是可以动态调节的,但是shard的数量是不可以改变的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: