Elasticsearch在cenos7下搭建双机测试集群

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

Elasticsearch在cenos7下搭建双机测试集群

一、 安装环境

两台cenos7虚拟机,ip为:192.168.1.41和192.168.1.42

elasticsearch需要的JDK版本为1.8. 因此需要给elasticsearch指定jdk1.8(不需要将jdk1.8配置到环境变量).

二、 *载下**安装包

从官网下*载下**elasticsearch 7.1版本的压缩包,kibana7.1压缩包

*载下**地址:https://www.elastic.co/cn/downloads/elasticsearch

*载下**完毕以后上传到linux中:

Elasticsearch在cenos7下搭建双机测试集群

三、 添加用户组及用户,配置密码

elasticsearch默认是不支持用root用户来启动的,我们建elsearch用户。

# 添加用户组

groupadd elsearch

# 添加用户

useradd -m -g elsearch elsearch

# 配置密码

passwd elsearch

四、 解压文件

gunzip elasticsearch-7.2.0-linux-x86_64.tar.gz
tar -xvf elasticsearch-7.2.0-linux-x86_64.tar

目录结构:

bin:启动文件

config:配置文件

log4j2.properties:日志配置文件

jvm.options:java虚拟机的配置

elasticsearch.yml:es的配置文件

data:索引数据目录

lib:相关类库Jar包

logs:日志目录

modules:功能模块

plugins:插件

五、 新建索引数据与日志数据目录

# 在elasticsearch-7.2.0目录中新建目录,注意目录权限

cd elasticsearch-7.2.0
mkdir data
cd data
mkdir es
cd es
mkdir data
mkdir logs

六、 修改每个进程最大同时打开文件数太小

vi /etc/security/limits.conf

# 增加如下:

# elsearch为用户名

elsearch soft nofile 65536
elsearch hard nofile 65536

# 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功

ulimit -Hn
ulimit -Sn

七、 设置最大虚拟内存

vi /etc/sysctl.conf

# 增加如下:

vm.max_map_count=262144

# 修改完之后,执行如下命令生效

sysctl -p

八、 设置最大线程数

vi /etc/security/limits.conf

# 增加如下:

# elsearch为用户名

elsearch soft nproc 4096
elsearch hard nproc 4096

# 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功

ulimit -Hu
ulimit -Su

九、 配置elasticsearch

编辑:config/elasticsearch.yml

配置说明:

参数

说明

cluster.name

集群名称,相同名称为一个集群

node.name

节点名称,集群模式下每个节点名称唯一

node.master

当前节点是否可以被选举为master节点,是:true、否:false

node.data

当前节点是否用于存储数据,是:true、否:false

path.data

索引数据存放的位置

path.logs

日志文件存放的位置

bootstrap.memory_lock

需求锁住物理内存,是:true、否:false

bootstrap.system_call_filter

SecComp检测,是:true、否:false

network.host

监听地址,用于访问该es

network.publish_host

可设置成内网ip,用于集群内各机器间通信

http.port

es对外提供的http端口,默认 9200

discovery.seed_hosts

es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点

cluster.initial_master_nodes

es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master

http.cors.enabled

是否支持跨域,是:true,在使用head插件时需要此配置

http.cors.allow-origin

"*" 表示支持所有域名

节点1:

cluster.name: es-test (集群名称必须一致)
node.name: node-1 (节点名称必须不同)
node.master: true (是否为主节点)
node.data: true
path.data: /home/elsearch/elasticsearch-7.2.0/data/es/data
path.logs: /home/elsearch/elasticsearch-7.2.0/data/es/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.1.41
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.1.41:9300", "192.168.1.42:9300"]
cluster.initial_master_nodes: ["node-1","node-2"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.ml.enabled: false

节点2:

# 增加如下:
cluster.name: es-test (集群名称必须一致)
node.name: node-2 (节点名称必须不同)
node.master: false
node.data: true
path.data: /home/elsearch/elasticsearch-7.2.0/data/es/data
path.logs: /home/elsearch/elasticsearch-7.2.0/data/es/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 192.168.1.41
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.1.41:9300", "192.168.1.42:9300"]
cluster.initial_master_nodes: ["node-1","node-2"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.ml.enabled: false

十、 修改elasticsearch内存大小

编辑config/jvm.options

 
# 按需修改如下内存大小即可
-Xms4g
-Xmx4g

十一、 运行elasticsearch

在elasticsearch-7.2.0/bin 目录,执行elasticsearch

Cd

./elasticsearch -d

#其中-d表示后台启动