ES集群安装教程

引言

最近项目需要部署ES教程,所以至此记录安装过程,本教程使用的es版本为6.0.1,并且在同一台机器上搭建三个节点的伪集群。

ES 集群至少部署 3 个节点,确保至少存在两个主节点保证数据可靠性。部署完一个节点后,把部署目录拷贝到其他节点,修改配置后就可以完成部署。

教程开始==================

1、下载需要的安装包

[root@jack soft]#  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.tar.gz

2、解压

tar -zxvf elasticsearch-6.0.1.tar.gz

3、在安装目录下面建立文件夹elasticsearch-6.0.1,然后创建第一个节点。

mv elasticsearch-6.0.1.tar.gz /data/app/elasticsearch-6.0.1/es1

4、修改配置文件

vim /data/app/elasticsearch-6.0.1/es1/config/elasticsearch.yml

  需要修改的配置如下:

    1、cluster.name: call-search  //集群名称,建议 修改为有意义的名称, 不同的节点该名称需要保持一致。

    2、node.name: node-1  //节点名称 每个节点名称不一致

    3、path.data: /data/app/elasticsearch-6.0.1/es1  //数据存放路径

    4、path.logs: /data/logs/elasticsearch/es1  //日志存放路径

    5、network.host: 172.21.64.17  // 服务器的内网地址

    6、http.port: 9201  //对外通讯端口

    7、transport.tcp.port: 9301 //集群内部通讯端口

    8、discovery.zen.ping.unicast.hosts: ["172.21.64.17:9301", "172.21.64.17:9302","172.21.64.17:9303"]  //集群配置

    9、discovery.zen.minimum_master_nodes: 2  //集群存活最少节点数量

  修改上面几个配置项,就可以了,下面是我项目中的配置文件。各位读者可以参考

# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: call-search
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /data/app/elasticsearch-6.0.1/es1
#
# Path to log files:
#
path.logs: /data/logs/elasticsearch/es1
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 123.321.45.6
#
# Set a custom port for HTTP:
#
http.port: 9201
transport.tcp.port: 9301

#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.zen.ping.unicast.hosts: ["123.321.45.6:9301", "123.321.45.6:9302","123.321.45.6:9303"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
discovery.zen.minimum_master_nodes: 2
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

5、配置内存

vim /data/app/elasticsearch-6.0.1/es1/config/jvm.options 

根据服务配置和 业务需求进行内存的分配即可,我我这里每个节点分配了8g内存。

6、启动服务

  权限设置  chown daemon:daemon -R /data/app/elasticsearch-6.0.1/es1

 我们使用daemon用户启动es服务,所以需要设置权限

 启动命令:/sbin/runuser -s /bin/bash daemon -c " /data/app/elasticsearch-6.0.1/es1/bin/elasticsearch -d"

7、配置剩余两个节点

直接复制es1文件夹为es2,es3,然后修改对应的 配置文件中的节点名称和端口名称即可。注意集群名称要保持一致

8、配置完成以后,按照节点1的启动方式启动即可。

至此,整个安装过程完成。

附录:es配置文件中重要节点说明

  

#集群名
cluster.name: elasticsearch
#节点名
node.name: es_1
#数据文件路径
path.data:  /opt/elasticsearch/es1/data
#日志文件路径
path.logs: /opt/logs/elasticsearch/es1
#监听地址
#network.host: 10.141.141.29	
network.host: es1.jack.com
#监听端口
http.port: 9201		
#数据通讯端口
transport.tcp.port: 9301		
#集群中的节点地址		
#discovery.zen.ping.unicast.hosts : ["123.321.45.6:9301", "123.321.45.6:9302", "123.321.45.6:9303"]
discovery.zen.ping.unicast.hosts : ["es1.jack.com:9301", " es2.jack.com:9302", " es3.jack.com:9303"]
#集群中的至少主节点数(指定集群中的节点中有几个有master资格的节点)
discovery.zen.minimum_master_nodes: 2
#是否为master
node.master: true
#是否为数据节点
node.data: true
#设置集群中自动发现其它节点时ping连接超时时间
discovery.zen.fd.ping_timeout: 180s
#集群中节点之间ping的次数
discovery.zen.fd.ping_retries: 10
#集群中节点之间ping的时间间隔
discovery.zen.fd.ping_interval: 30s
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

 

 
g-Jack CSDN认证博客专家 Spring Java Linux
硕士毕业于北京交通大学软件工程专业,拥有5年java工作经验,热爱编程,乐于分享,喜欢研究架构方向的优化,和大数据高并发架构的设计。
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页