一、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集群部署
wget https://mirrors.huaweicloud.com/elasticsearch/7.6.0/elasticsearch-7.6.0-linux-x86_64.tar.gz
解压、创建用户elastic、修改目录属主、属组。
同时需要安装jdk,在oracle官网下载即可。配置java环境变量
[root@master ~]# vim /etc/profile 添加以下内容
export JAVA_HOME=/usr/local/java/jdk-11.0.9
export PATH=$PATH:$JAVA_HOME/bin
[root@master ~]# source /etc/profile
修改jvm参数
[root@master config]# vim /app/es-1/config/jvm.options
-Xms256m
-Xmx256m
修改最大打开文件数
es配置的一个重要部分是调整操作系统,在索引过程中,尤其在有很多分片和副本的情况下,es会创建若干文件。因此,操作系统对打开文件数量的限制不能小于32000。对于Linux服务器通常来将可以在/etc/security/limits.conf文件中进行修改,并可以使用ulimit命令来查看当前值。
使用命令ulimit修改只是暂时的,永久生效就改limits.conf文件
[root@master config]# cat /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft memlock unlimited
* hard memlock unlimited
命令查看最大打开文件数
[root@master config]# ulimit -n
65535
Master节点核心文件配置
[root@master config]# vim /app/es-1/config/elasticsearch.yml
cluster.name: bdp-common-001
node.master: true
node.data: false
path.data: /var/data/es
path.logs: /var/log/es
network.host: 192.168.137.11
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.137.11:9300"]
cluster.initial_master_nodes: ["node-1"]
Slave节点配置,node-3与node2相似不再演示。
cluster.name: bdp-common-001
node.name: node-2
node.master: false
node.data: true
path.data: /var/data/es
path.logs: /var/log/es
network.host: 192.168.137.12
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.137.11:9300"]
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启动集群
[root@master config]# su - elastic -c "cd /app/es-1/bin && ./elasticsearch -d"
查看进程
在es工作期间,一个服务实例通常使用两个端口,9200用于和通过HTTP协议和REST API进行通信,9300被传输模块用于集群中节点的通信。
查看集群基本信息状态
[root@master config]# curl http://192.168.137.11:9200、
{
"name" : "master",
"cluster_name" : "bdp-common-001",
"cluster_uuid" : "A0sgJNj_SUqtnj0wCgmqyQ",
"version" : {
"number" : "7.6.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
"build_date" : "2020-02-06T00:09:00.449973Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
查看集群健康度
-X 参数是一种请求方法,默认是GET。参数?pretty,标准情况下api以省略换行符的JSON格式返回信息,该参数强制es在响应中添加换行符,使响应结果更加方便人们阅读。
[root@master config]# curl http://192.168.137.11:9200/_cluster/health?pretty
{
"cluster_name" : "bdp-common-001",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 2,
"active_primary_shards" : 4,
"active_shards" : 8,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}