阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7.3下Elasticsearch集群部署

126次阅读
没有评论

共计 4442 个字符,预计需要花费 12 分钟才能阅读完成。

CentOS7.3 下 Elasticsearch 集群部署

Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。Elastic 的底层是开源库。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

一、ES 中的基本概念

cluster

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

shards

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

replicas

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

recovery

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

river

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

gateway

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

discovery.zen

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

Transport

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


二、部署环境

采用三台 CentOS7.3 部署 Elasticsearch 集群,部署 Elasticsearch 集群就不得不提索引分片,以下是索引分片的简单介绍。

系统 节点名 IP
CentOS7.3 els1 172.18.68.11
CentOS7.3 els2 172.18.68.12
CentOS7.3 els3 172.18.68.13

ES 集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。

三、部署 Elasticsearch 集群

1. 安装 JDK

Elasticsearch 是基于 Java 开发是一个 Java 程序,运行在 Jvm 中,所以第一步要安装 JDK

yum install -y java-1.8.0-openjdk-devel

2. 下载 elasticsearch

https://artifacts.elastic.co/downloads/elasticsearch/ 是 ELasticsearch 的官方站点,如果需要下载最新的版本,进入官网下载即可。可以下载到本地电脑然后再导入 CentOS 中,也可以直接在 CentOS 中下载。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.rpm

3. 配置目录

安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径

/etc/elasticsearch/elasticsearch.yml                            # els 的配置文件
/etc/elasticsearch/jvm.options                                  # JVM 相关的配置,内存大小等等
/etc/elasticsearch/log4j2.properties                            # 日志系统定义
/var/lib/elasticsearch                                          # 数据的默认存放位置

4. 创建用于存放数据与日志的目录

数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,那么手动创建日志与数据文件路径,可以使用 NFS、可以使用 Raid 等等方便以后的管理与扩展

mkdir /els/{log,date}
chown -R elasticsearch.elasticsearch /els/*

5. 集群配置

集群配置中最重要的两项是 node.namenetwork.host,每个节点都必须不通。其中 node.name 是节点名称主要是在 Elasticsearch 自己的日志加以区分每一个节点信息。
discovery.zen.ping.unicast.hosts是集群中的节点信息,可以使用 IP 地址、可以使用主机名(必须可以解析)。

vim /etc/elasticsearch
cluster.name: aubin-cluster                                 # 集群名称
node.name: els1                                             # 节点名称,仅仅是描述名称,用于在日志中区分

path.data: /var/lib/elasticsearch                           # 数据的默认存放路径
path.logs: /var/log/elasticsearch                           # 日志的默认存放路径

network.host: 192.168.0.1                                   # 当前节点的 IP 地址
http.port: 9200                                             # 对外提供服务的端口,9300 为集群服务的端口

discovery.zen.ping.unicast.hosts: ["172.18.68.11", "172.18.68.12","172.18.68.13"]       
# 集群个节点 IP 地址,也可以使用 els、els.shuaiguoxia.com 等名称,需要各节点能够解析

discovery.zen.minimum_master_nodes: 2                       # 为了避免脑裂,集群节点数最少为 半数 +1

6.JVM 配置

由于 Elasticsearch 是 Java 开发的,所以可以通过 /etc/elasticsearch/jvm.options 配置文件来设定 JVM 的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的 -Xmx1g-Xms1gJVM 的最大最小内存。如果太小会导致 Elasticsearch 刚刚启动就立刻停止。太大会拖慢系统本身

vim /etc/elasticsearch/jvm.options
-Xms1g                                                  # JVM 最大、最小使用内存
-Xmx1g

7. 启动 Elasticsearch

由于启动 Elasticsearch 会自动启动 daemon-reload 所以最后一项可以省略。

systemctl enable elasticsearch.service
systemctl start elasticsearch
systemctl daemon-reload                                 # 可以省略

8. 测试

Elasticsearch 直接听过了 http 接口,所以直接使用 curl 命令就可以查看到一些集群相关的信息。

可以使用 curl 命令来获取集群的相关的信息,

  • _cat 代表查看信息
  • nodes 为查看节点信息,默认会显示为一行,所以就用刀了?preety 让信息更有好的显示
  • ?preety 让输出信息更友好的显示
curl -XGET 'http://172.18.68.11:9200/_cat/nodes?pretty'
172.18.68.12 18 68 0 0.07 0.06 0.05 mdi - els2
172.18.68.13 25 67 0 0.01 0.02 0.05 mdi * els3             #  * 号表示为当前节点为主节点的意思
172.18.68.11  7 95 0 0.02 0.04 0.05 mdi - els1

如果你要想查看更多有关于集群信息、当前节点统计信息等等,可以使用一下命令来获取到所有可以查看的信息。

curl -XGET 'http://172.18.68.11:9200/_cat?pretty'   

Elasticsearch 教程系列文章

Linux 上安装部署 ElasticSearch 全程记录  http://www.linuxidc.com/Linux/2015-09/123241.htm

Linux 下 Elasticsearch 1.7.0 安装配置 http://www.linuxidc.com/Linux/2017-05/144215.htm

在 Ubuntu 16.04 中安装 Elasticsearch 5.4 分析引擎  http://www.linuxidc.com/Linux/2017-07/145588.htm

Elasticsearch1.7 升级到 2.3 实践总结  http://www.linuxidc.com/Linux/2016-11/137282.htm

Ubuntu 14.04 中 Elasticsearch 集群配置  http://www.linuxidc.com/Linux/2017-01/139460.htm

Elasticsearch-5.0.0 移植到 Ubuntu 16.04 http://www.linuxidc.com/Linux/2017-01/139505.htm

ElasticSearch 5.2.2 集群环境的搭建  http://www.linuxidc.com/Linux/2017-04/143136.htm

Linux 下安装搜索引擎 Elasticsearch  http://www.linuxidc.com/Linux/2017-05/144105.htm

CentOS 上安装 ElasticSearch 详解  http://www.linuxidc.com/Linux/2017-05/143766.htm

Elasticsearch5.3 安装插件 head  http://www.linuxidc.com/Linux/2017-09/147008.htm

ElasticSearch 的详细介绍:请点这里
ElasticSearch 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149289.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4442字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中