1. 集群简介

三台机器,均用于保存数据且可被选为master节点
服务版本
服务 版本
elasticsearch 7.1.1
jdk 1.8

1. 创建elsearch用户

不建议直接使用root用户,所以此处新建 elsearch用户

1.1 添加用户组及用户,配置密码

# 添加用户组
groupadd elsearch # 添加用户
useradd -m -g elsearch elsearch # 配置密码
passwd elsearch

1.2 sudo权限

visudo

# 在最后增加
elsearch ALL=(ALL) NOPASSWD:ALL

2. 下载 & 解压

注意目录权限为:elsearch

# 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz # 解压
tar xvf elasticsearch-7.1.1-linux-x86_64.tar.gz # 软链
ln -s elasticsearch-7.1.1 elasticsearch

3. 配置

此配置需同步到所有机器

3.1 修改 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 "*" 表示支持所有域名

详情配置:

vim config/elasticsearch.yml

# 增加如下:
cluster.name: es-test node.name: node-3
node.master: true
node.data: true path.data: /data/es/data
path.logs: /data/es/logs bootstrap.memory_lock: false
bootstrap.system_call_filter: false network.host: 0.0.0.0
# 有些时候并不需要此配置,但我这里需要..
network.publish_host: 10.240.0.8 http.port: 9200
discovery.seed_hosts: ["10.100.0.7", "10.100.0.8"]
cluster.initial_master_nodes: ["10.100.0.8"] http.cors.enabled: true
http.cors.allow-origin: "*"

3.2 修改 jvm.options

vim config/jvm.options

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

3.3 新建索引数据与日志数据目录

# 新建目录,注意目前权限
mkdir -p /data/es/data
mkdir -p /data/es/logs

4. 启动

cd bin/
./elasticsearch # 后台运行
./elasticsearch -d

初次启动时,可能会遇到如下图的几个错误,一一解决即可。

4.1. 每个进程最大同时打开文件数太小
vim /etc/security/limits.conf

# 增加如下:
# elsearch为用户名
elsearch soft nofile 65536
elsearch hard nofile 65536 # 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功
ulimit -Hn
ulimit -Sn
4.2. 申请锁定内存失败
vim config/elasticsearch.yml

# 修改,不锁定内存
bootstrap.memory_lock: false
4.3. 最大虚拟内存太小
vim /etc/sysctl.conf

# 增加如下:
vm.max_map_count=262144 # 修改完之后,执行如下命令生效
sysctl -p
4.4. 因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
vim config/elasticsearch.yml

设置为false
bootstrap.system_call_filter: false
4.5. 最大线程数太小
vim /etc/security/limits.conf

# 增加如下:
# elsearch为用户名
elsearch soft nproc 4096
elsearch hard nproc 4096 # 保存之后,退出当前用户重新登录生效,可用如下命令查看是否修改成功
ulimit -Hu
ulimit -Su
4.6 network.host 监听 0.0.0.0 之后无法组成集群

报错(警告):

始终只有一个节点:

解决:

vim config/elasticsearch.yml

# 增加如下配置,用于集群内各机器间通信:
network.publish_host: 10.240.0.8

参考

  1. https://www.2cto.com/net/201905/810168.html
  2. http://www.sohu.com/a/301517999_683048
  3. https://www.jianshu.com/p/169acce2ce25
  4. https://www.cnblogs.com/xiaoheike/p/5750222.html

最新文章

  1. OpenWrt中开启usb存储和samba服务
  2. 1.openGL 初探
  3. c#泛型的使用[转]
  4. ZYNQ学习之二-EMIO
  5. 工作总结:qsort函数用法
  6. EasyUI 1.3.6 DateBox添加清空按钮
  7. JavaScript定时器及相关面试题
  8. javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
  9. MVC配置伪静态
  10. 201521123089 《Java程序设计》第2周学习总结
  11. 使用CAS实现无锁列队-链表
  12. kruskal重构树学习笔记
  13. Linux设备树(四 中断)
  14. JavaScript 事件绑定函数
  15. 尚硅谷springboot学习27-使用外置servlet容器
  16. 雷林鹏分享:Ruby 类和对象
  17. Ansible之roles介绍
  18. nodejs——向另一个服务器发送文件
  19. Ajax嵌套Ajax的模版
  20. AS3中以post和get方式提交数据

热门文章

  1. 极简代码(七)—— SNR
  2. 大班模型行为PK(总结)
  3. 使用lead分析功能相似的结构9*9乘法口诀功能
  4. 安装Eclipse完PyDev插件中没有出现
  5. POJ1185:火炮(减少国家)
  6. Git 将子文件夹分离为一个新的库
  7. WPF 窗体边框处理
  8. 国家气象局 天气预报 城市代码(JSON格式)
  9. QT字符编码转换,可用于中文内码传输
  10. SpringMVC与uploadify结合进行上传