centos搭建elasticsearch集群

  • Post author:
  • Post category:其他




elasticsearch集群



1)准备工作

三台linux服务器,将下载好的es压缩包分别上传到服务器,然后解压

tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz


2)创建用户


因为安全问题,elasticsearch不允许root用户直接运行,需要单独创建新用户运行

#使用root用户创建es新用户
useradd myes #新增es用户
passwd myes #设置用户密码

如果想要删除用户,可以

userdel -r myes

创建用户完成后,进行授权,路径就是解压的es文件路径

# 记得授权,不然myes用户启动会提示权限不足
chown -R myes:myes /opt/elasticsearch-7.8.0

image-20220607143530213



3)修改配置文件


3.1

修改

/opt/elasticsearch-7.8.0/config/elasticsearch.yml

文件

# 集群名称
cluster.name: my-es
# 节点名称,每个节点名称不能重复
node.name: node-1
# ip地址,每个节点的ip地址不能重复,也可以填当前服务器的hostname
network.host: hll1
# 是不是有资格主节点
node.master: true
node.data: true
# es端口
http.port: 9200
# head插件需要打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
# es7.x后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# es7.x后新增的配置,节点发现
discovery.seed_hosts: ["hll1:9300", "hll2:9300", "hll3:9300"]
# 集群中最少几个节点可用
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
# 集群内同时启动的数据任务个数,默认2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
# 添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
cluster.routing.allocation.node_concurrent_recoveries: 16

配置完成后,将

elasticsearch.yml

文件复制到另外两台服务器,替换原先的旧文件


注:不能重复的配置项需要根据服务器修改,比如节点名,ip地址等

# 复制hll1机器的配置文件到hll2和hll3,elasticsearch.yml文件的路径不要替换错了
scp elasticsearch-7.8.0/config/elasticsearch.yml root@hll2:/opt/elasticsearch-7.8.0/config/
scp elasticsearch-7.8.0/config/elasticsearch.yml root@hll3:/opt/elasticsearch-7.8.0/config/

image-20220607145922610

复制到另外两台服务器之后,记得修改配置!!!

elasticsearch.yml文件要写规范点,不然会启动服务时会提示:expected block end, but found block mapping start

配置项开头不要用tab缩近,也不要空格


3.2

修改

/etc/security/limits.conf

# 在文件末尾添加下面内容,myes是新创建的用户名
myes soft nofile 65536
myes hard nofile 65536


3.3

修改

/etc/security/limits.d/20-nproc.conf

# 在文件末尾中增加下面内容,myes是新创建的用户名,* 代表 Linux 所有用户名称
myes soft nofile 65536
myes hard nofile 65536
* hard nproc 4096


3.4

修改

/etc/sysctl.conf

# 在文件中增加下面内容
vm.max_map_count=655360

重新加载

sysctl -p


注:上面修改的文件都需要在另外的服务器进行同样的配置修改,可手动修改也可scp直接复制到另外的服务器

# hll2
scp /etc/security/limits.conf root@hll2:/etc/security/
scp /etc/security/limits.d/20-nproc.conf root@hll2:/etc/security/limits.d/
scp /etc/sysctl.conf root@hll2:/etc/
sysctl -p

# hll3
scp /etc/security/limits.conf root@hll3:/etc/security/
scp /etc/security/limits.d/20-nproc.conf root@hll3:/etc/security/limits.d/
scp /etc/sysctl.conf root@hll3:/etc/
sysctl -p

image-20220607161059142

拷贝完成后另外两台服务器需要执行

sysctl -p

,不要忘记了



4)启动es

分别启动不同节点的es,

使用你新创建的用户启动

su myes

cd /opt/elasticsearch-7.8.0/

# 启动es
bin/elasticsearch
# 后台方式启动
bin/elasticsearch -d

如果服务器内存不够的话,可以将es启动内存设置小一点

vim /opt/elasticsearch-7.8.0/config/jvm.options

启动完成后,打开浏览器访问:

image-20220607165115277



版权声明:本文为sinat_33151213原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。