Elasticsearch 系列(一) 简介

目录

一、ELK

二、Elasticsearch

1、定义:

2、涉及的几个基本概念

3、Elasticsearch 的架构

4、Elasticsearch 和Solr 的区别 :都是当前比较火的全文搜索引擎


一、ELK

1、定义 :ELK 是Elastic 公司旗下三款产品,Elasticsearch 、Logstash 、Kibana 的组合

2、为什么使用ELK ?   可以同时实现日志收集、日志搜索和日志分析的功能

二、Elasticsearch

1、定义:

分布式的、可扩展的、高可用的
实时搜索的能力,实时分析的能力
基于RESTFul 这个标准

总结:一个采用RESTFul API 标准的高扩展性和高可用性的实时数据分析的全文搜索工具。

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2、涉及的几个基本概念

①、Node(节点):单个装有Es 服务并且提供故障转移和扩展服务器。

②、cluster(集群):一个集群就是由一个或多个node组织在一起,共同工作,共同分享整个数据具有负载均衡功能的集群。

③、Document(文档):一个文档是一个可被索引的基础信息单元。

④、Index(索引):索引就是一个拥有几分相似特征的文档的集合。

⑤、Type(类型):一个索引中你可以定义一种或多种类型。

⑥、Field(列):Field是Es的最小单位,相当于数据的某一列。

⑦、shards(分片):Es将索引分成若干份,每个部分就是一个shard。

⑧、Replicas(复制):Replicas是索引一份或是几份拷贝

总结:

(1)、Document :可以表示为单个客户的信息;

             Index:可以表示为多个客户的信息,索引里的文档都是相似的;建立索引,英文全都要小写。

             Replicas:Es为了防止数据的丢失,还为了做这个负载均衡,所以用Replicas。

(2)、Es是非关系型数据库

关系型数据库(MySQL) 非关系型数据库(Elasticsearch )
数据库 database 索引库 index
表 table 类型 type
行 row 文档 document
列 column 字段 field

3、Elasticsearch 的架构

Elasticsearch 系列(一) 简介_第1张图片

分解来看:

⑥、Gateway :当这个Es关闭再启动的时候,它就会从这个gateway 里面读取索引数据。它支持的格式有:Local FileSystem (本地的) 、 分布式的(sharad)FileSystem 、 Hadoop HDFS 和亚马逊的S3。

⑤、是Lucene 的框架。Elasticsearch  是基于Lucene 框架而写的。

④、是Es对数据的加工处理方式。有创建index 的模板 、搜索的模板 、 mapping(定义索引下面type字段的处理规则。例如如何建立,还有索引数据类型等,相当于关系型数据库里的schema 【MySQL里的schema】)、River (是一个运行在Es集群内部的一个插件。主要就是用来从外部获取异构数据,然后在Es里面创建索引,常见的插件有RabbitMQ River还有Twitter River)。

③、A:这个Zen 是用来实现节点自动发现,还有Master节点选取用的。假如Master出现故障,不能工作了,那么其他的这个节点会自动选举,然后产生一个新的Master。

补充:Es是基于P2P的系统,它首先通过广播的机制寻找存在的节点,然后再通过这个多播协议来进行节点间的通信,同时也支持这个点对点的交互。

B:是Es的脚本执行功能。有了这个功能就能很方便对查询出来的数据进行加工处理,有mvel、js、python 脚本的类型。

C:Es支持安装很多第三方的插件。因为Es的社区支持力度比较大,会有很多插件提供给用户使用,是Es使用变得更加简单方便。以后可能会经常使用到中文分词、状态监控等插件。插件的安装简单,只需一条命令即可安装。

②、是Es的交互方式,有三种协议,Thrift , Memcached , HTTP 。默认的Elasticsearch  是用HTTP协议传输的。

①、Elasticsearch 的API支持模式了,Elasticsearch  采用restful的标准。java语言是对Elasticsearch 支持度最好的语言

4、Elasticsearch 和Solr 的区别 :都是当前比较火的全文搜索引擎

①、Elasticsearch 更侧重实时的数据分析,Solr 在实时搜索方面效率比 Elasticsearch 低 ;

②、在支持文本格式方面,Solr 比 Elasticsearch 强 。它支持的文本格式比较多,例如 HTML、PDF、Word 、Excel 、CVS 等,而 Elasticsearch 只支持json的格式。

你可能感兴趣的:(数据库,ELK)