优秀的编程知识分享平台

网站首页 > 技术文章 正文

Elasticsearch 实用手册,系列文章之第一篇(科普文)

nanyue 2024-10-14 11:35:39 技术文章 4 ℃

注:本文范例版本:Elasticsearch-5.2.2

目录:

  • 体系结构描述

  • 常用插件


体系结构描述

cluster

代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。

shards

代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

replicas

代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

recovery

代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

river

代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的,river这个功能将会在后面的文件中重点说到。

gateway

代表es索引的持久化存储方式,es默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个es集群关闭再重新启动时就会从gateway中读取索引数据。es支持多种类型的gateway,有本地文件系统(默认),分布式文件系统,Hadoop的HDFS和amazon的s3云存储服务。

discovery.zen

代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。

Transport

代表es内部节点或集群与客户端的交互方式,默认内部是使用tcp协议进行交互,同时它支持http协议(json格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。


常用插件

1、插件——head

elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es。

下载地址:

https://github.com/mobz/elasticsearch-head,下载后解压缩。

启动:

/elasticsearch-head/node_modules/grunt/bin>./grunt server

访问:

http://localhost:9100/

参考:

http://blog.csdn.net/napoay/article/details/53896348

概览

这个页面可以看到基本的分片的信息,比如主分片、副本分片等等,以及多少分片可用。

上方my-application是集群的名称,颜色表示集群的健康状态:

  • 绿色表示主分片和副本分片都可用;

  • 黄色表示只有主分片可用,没有副本分片;

  • 红色表示主分片中的部分索引不可用,但是不耽误某些索引的访问。

索引

这个页面可以创建索引,并且可以设置分片的数量,副本的数量等等。

创建完索引,可以回来再看看概览的数据:

数据浏览

这个tab页可以看到每个索引的基本信息,比如都有什么字段,存储的内容等等。

不过这里并不能查询到全量的数据!想要看所有的数据,只能使用scroll进行分页查询了。

基本查询

在这里可以拼接一些基本的查询。

如果了解elasticsearch的朋友,可以在这里轻松拼接处es的查询语句。

复合查询

这里比较常用了,不仅仅可以做查询,还可以执行PUT DELETE等curl的命令。

因此,刚学习es的朋友,不需要在windows下安装curl,直接在这里就可以提交一些rest请求。

这里能使用的功能还是很多的,所有需要通过curl执行的rest请求,都可以在这里执行:

  • 创建索引

  • 删除索引

  • 索引数据

  • 更新数据

  • 删除数据

  • 创建映射

  • 创建别名

  • 指定路由

    等等功能。

2、插件——bigdesk

bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。由于elasticsearch不再建议支持插件的安装方式。建议作为独立的程序来安装类似于bigdesk、head。

1、下载git zip源码

地址:https://github.com/hlstudio/bigdesk

2、在linux上解压zip

unzip bigdesk-master.zip

3、进入_site目录

cd bigdesk-master/_site

4、启动Python服务(后台运行)

nohup python -m SimpleHTTPServer 6060 &

5、访问:

http://localhost:6060/#nodes

注:

在elasticsearch.yml中必须配置以下属性,否则bigdesk前台页面点connect无反应

http.cors.enabled: true

http.cors.allow-origin: "*"

3、分词插件--elasticsearch-analysis-ik/

1、下载插件

git clone https://github.com/medcl/elasticsearch-analysis-ik

获取elasticsearch对应版本的分词器

git checkout tags/{version}

(git checkout v1.10.1)

2、打包编译

mvn package

3、将编译生成的文件拷贝到elasticsearch相应的目录

copy and unzip target/releases/elasticsearch-analysis-ik-{version}.zip

to your-es-root/plugins/ik

4、重启elasticsearch

4、kibana -分析插件

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。 Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘

下载插件

https://www.elastic.co/downloads/kibana

编辑文件: config/kibana.yml

elasticsearch.url =http://localhost:9200

启动:./bin/kibana

访问:http://localhost:5601/app/kibana

(查看分词情况)

5、Marvel-Monitor Elasticsearch 插件

硬盘使用情况,节点运行情况监控

插件下载地址: https://www.elastic.co/downloads/marvel

访问地址:http://localhost:5601/app/marve

最近发表
标签列表