一、es集群的安装和部署

es国内镜像下载地址,常用版本7.6和5.4。

1.1集群信息

由于虚拟机资源有限,部署了一个三节点的集群。 一台主机一个es实例

节点名 ip 版本
node-1 192.168.137.11 7.6
node-2 192.168.137.12 7.6
node-3 192.168.137.13 7.6

1.2集群部署

  1. wget https://mirrors.huaweicloud.com/elasticsearch/7.6.0/elasticsearch-7.6.0-linux-x86_64.tar.gz

解压、创建用户elastic、修改目录属主、属组。
同时需要安装jdk,在oracle官网下载即可。配置java环境变量

  1. [root@master ~]# vim /etc/profile 添加以下内容
  2. export JAVA_HOME=/usr/local/java/jdk-11.0.9
  3. export PATH=$PATH:$JAVA_HOME/bin
  4. [root@master ~]# source /etc/profile

修改jvm参数

  1. [root@master config]# vim /app/es-1/config/jvm.options
  2. -Xms256m
  3. -Xmx256m

修改最大打开文件数
es配置的一个重要部分是调整操作系统,在索引过程中,尤其在有很多分片和副本的情况下,es会创建若干文件。因此,操作系统对打开文件数量的限制不能小于32000。对于Linux服务器通常来将可以在/etc/security/limits.conf文件中进行修改,并可以使用ulimit命令来查看当前值。
使用命令ulimit修改只是暂时的,永久生效就改limits.conf文件

  1. [root@master config]# cat /etc/security/limits.conf
  2. * soft nproc 65535
  3. * hard nproc 65535
  4. * soft nofile 65535
  5. * hard nofile 65535
  6. * soft memlock unlimited
  7. * hard memlock unlimited

命令查看最大打开文件数

  1. [root@master config]# ulimit -n
  2. 65535

Master节点核心文件配置

  1. [root@master config]# vim /app/es-1/config/elasticsearch.yml
  2. cluster.name: bdp-common-001
  3. node.master: true
  4. node.data: false
  5. path.data: /var/data/es
  6. path.logs: /var/log/es
  7. network.host: 192.168.137.11
  8. http.port: 9200
  9. transport.tcp.port: 9300
  10. discovery.seed_hosts: ["192.168.137.11:9300"]
  11. cluster.initial_master_nodes: ["node-1"]

Slave节点配置,node-3与node2相似不再演示。

  1. cluster.name: bdp-common-001
  2. node.name: node-2
  3. node.master: false
  4. node.data: true
  5. path.data: /var/data/es
  6. path.logs: /var/log/es
  7. network.host: 192.168.137.12
  8. http.port: 9200
  9. transport.tcp.port: 9300
  10. discovery.seed_hosts: ["192.168.137.11:9300"]
  11. cluster.initial_master_nodes: ["node-1"]

1.3es目录结构

介绍安装es后新创建的文件目录

目录名称 描述
bin 运行es和进行插件管理所需的脚本
config es的配置文件所在目录
lib es执行中要到的库

启动es之后会创建如下4个文件目录

目录名称 描述
data 存储es用到的数据
logs 存储es执行过程中产生的事件信息的错误信息日志
plugins 已安装插件所在目录
work 存储临时文件

1.4启动集群

  1. [root@master config]# su - elastic -c "cd /app/es-1/bin && ./elasticsearch -d"

查看进程
image.png
在es工作期间,一个服务实例通常使用两个端口,9200用于和通过HTTP协议和REST API进行通信,9300被传输模块用于集群中节点的通信。
image.png
查看集群基本信息状态

  1. [root@master config]# curl http://192.168.137.11:9200
  2. {
  3. "name" : "master",
  4. "cluster_name" : "bdp-common-001",
  5. "cluster_uuid" : "A0sgJNj_SUqtnj0wCgmqyQ",
  6. "version" : {
  7. "number" : "7.6.0",
  8. "build_flavor" : "default",
  9. "build_type" : "tar",
  10. "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
  11. "build_date" : "2020-02-06T00:09:00.449973Z",
  12. "build_snapshot" : false,
  13. "lucene_version" : "8.4.0",
  14. "minimum_wire_compatibility_version" : "6.8.0",
  15. "minimum_index_compatibility_version" : "6.0.0-beta1"
  16. },
  17. "tagline" : "You Know, for Search"
  18. }

查看集群健康度
-X 参数是一种请求方法,默认是GET。参数?pretty,标准情况下api以省略换行符的JSON格式返回信息,该参数强制es在响应中添加换行符,使响应结果更加方便人们阅读。

  1. [root@master config]# curl http://192.168.137.11:9200/_cluster/health?pretty
  2. {
  3. "cluster_name" : "bdp-common-001",
  4. "status" : "green",
  5. "timed_out" : false,
  6. "number_of_nodes" : 3,
  7. "number_of_data_nodes" : 2,
  8. "active_primary_shards" : 4,
  9. "active_shards" : 8,
  10. "relocating_shards" : 0,
  11. "initializing_shards" : 0,
  12. "unassigned_shards" : 0,
  13. "delayed_unassigned_shards" : 0,
  14. "number_of_pending_tasks" : 0,
  15. "number_of_in_flight_fetch" : 0,
  16. "task_max_waiting_in_queue_millis" : 0,
  17. "active_shards_percent_as_number" : 100.0
  18. }