ElasticSearch~ElasticSearch集群模式安装配置教程

准备工作

1. 三台虚拟机

主机名IP地址
node1192.168.10.101
node2192.168.10.102
node3192.168.10.103

2. 软件版本

软件名称版本
jdk1.8.0_65
elasticsearch6.8.4

一、安装jdk

  1. 上传安装包到/export/server目录下

在这里插入图片描述

  1. 解压压缩包
tar -zxvf jdk-8u65-linux-x64.tar.gz
  1. 删除安装包
rm -rf jdk-8u65-linux-x64.tar.gz
  1. 重命名文件夹
mv jdk1.8.0_65/ jdk
  1. 配置环境变量
vim /etc/profile
# 新增加的内容
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  1. 重载环境变量
source /etc/profile

二、安装ElasticSearch

  1. 将安装包上传到/export/server目录下

在这里插入图片描述

  1. 解压压缩包
tar -zxvf elasticsearch-6.8.4.tar.gz
  1. 删除安装包
rm -rf elasticsearch-6.8.4.tar.gz
  1. 重命名文件夹
mv elasticsearch-6.8.4/ elasticsearch
  1. 创建普通用户
# 新增es用户
useradd es
# 为es用户设置密码
passwd es
# 如果错了,可以删除再加
# userdel -r es
  1. 修改配置文件
vim /export/server/elasticsearch/config/elasticsearch.yml
# 集群标识,同一个集群中的多个节点使用相同的标识
cluster.name: es-cluster
# 节点名称,每个节点的名称不能重复
# 其他机器修改为es-node2和es-node3
node.name: "es-node1"
# 数据存储目录
path.data: /export/server/elasticsearch/data
# 日志存储目录
path.logs: /export/server/elasticsearch/logs
# 节点绑定IP地址,并且该节点会被通知到集群中的其他节点,每个节点的地址不能重复
# 其他机器修改为192.168.10.102、192.168.10.103
network.host: 192.168.10.101
# 绑定鉴定的网络接口,监听传入的请求,可以设置为IP地址或者主机名
# 其他机器修改为192.168.10.102、192.168.10.103
network.bind_host: 192.168.10.101
# 发布地址,用于通知集群中的其他节点,和其他节点通讯,不设置的话默认可以自动设置,必须是一个存在的IP地址
# 其他机器修改为192.168.10.102、192.168.10.103
network.publish_host: 192.168.10.101
# 对外提供服务的http端口,默认为9200
http.port: 9200
# 集群中主节点的初始列表,当主节点启动时会使用这个列表进行非主节点的监测
discovery.zen.ping.unicast.hosts: ["192.168.10.101","192.168.10.102","192.168.10.103"]
# 下面这个参数控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作,官方推荐值是(N/2)+1
# 其中N是具有master资格的节点的数量(我的情况是3,因此这个参数设置为2)
# 但是:对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,肯定连不上台服务器了,这点需要注意
discovery.zen.minimum_master_nodes: 2
# ES默认开启了内存地址锁定,为了避免内存交换提高性能,但是Centos6不支持SecComp功能,启动会报错,所以需要将其设置为false
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
  1. 修改limits.conf
vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
# 用来保护系统的资源访问,和sysctl.conf很像,但是limits.conf是针对于用户,而sysctl.conf是针对于操作系统
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
  1. 修改/etc/security/limits.d/20-nproc.conf
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 代表Linux所有用户名称
  1. 修改内核参数
vim /etc/sysctl.conf
# 在文件中增加下面内容
# max_map_count文件包含限制一个进程可以拥有VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。当进程达到了VMA上限但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的的错误,默认值为65536
vm.max_map_count=655360
# 重新加载
sysctl -p
  1. 创建data和log目录
mkdir -p /export/server/elasticsearch/data
mkdir -p /export/server/elasticsearch/logs
  1. 修改jvm配置文件
vim /export/server/elasticsearch/config/jvm.options
# elasticsearch启动时jvm所分配的初始堆内存大小
-Xms512m
# elasticsearch启动之后允许jvm分配的最大堆内存大小,生产环境中可能需要调大
-Xmx512m

注意:如果内存足够大,可以不用修改,默认为1G

  1. 修改文件夹权限
# 文件夹所有者
chown -R es:es /export/server/elasticsearch

三、启动ElasticSearch

  1. 切换用户
# 三台服务器都执行
su es
  1. 启动服务
# 前台启动
bin/elasticsearch
# 后台启动
bin/elasticsearch -d
  1. 启动成功

在这里插入图片描述

# 其他检测方式
ps -ef | grep elasticsearch
lsof -i:9200
  1. 测试
curl 192.168.10.101:9200
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值