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

ElasticSearch 7.1.1 集群环境搭建的更多相关文章

  1. ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决

    ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决 说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文 ...

  2. elasticsearch与mongodb分布式集群环境下数据同步

    1.ElasticSearch是什么 ElasticSearch 是一个基于Lucene构建的开源.分布式,RESTful搜索引擎.它的服务是为具有数据库和Web前端的应用程序提供附加的组件(即可搜索 ...

  3. Hadoop+Spark:集群环境搭建

    环境准备: 在虚拟机下,大家三台Linux ubuntu 14.04 server x64 系统(下载地址:http://releases.ubuntu.com/14.04.2/ubuntu-14.0 ...

  4. 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群

    上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...

  5. Spark 1.6.1分布式集群环境搭建

    一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...

  6. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...

  7. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  8. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  9. Ningx集群环境搭建

    Ningx集群环境搭建 Nginx是什么? Nginx ("engine x") 是⼀个⾼性能的 HTTP 和 反向代理 服务器,也是⼀个 IMAP/ POP3/SMTP 代理服务 ...

随机推荐

  1. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

  2. WPF无边框拖动、全屏、缩放

    原文:WPF无边框拖动.全屏.缩放 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78059361 先看效果 ...

  3. Git 内部原理--初探 .git

    说到Git大家应该都非常熟悉,几乎每天都会用到它.在日常使用过程中,我们貌似并不需要关注其内部的原理,只需要记住那几个常用的命令,就可以说自己是会Git的人了.可是,事实真的是这样子的吗?今天我们就来 ...

  4. PostgreSQL模式匹配的方法 LIKE等

    PostgreSQL 提供了三种实现模式匹配的方法:传统 SQL 的 LIKE 操作符.SQL99 新增的 SIMILAR TO 操作符. POSIX 风格的正则表达式.另外还有一个模式匹配函数 su ...

  5. DevExpress XtraTreeList TreeList复选框选择

    权限管理涉及复选框多勾选. 1.控件属性设置 TreeList.OperationView.ShowCheckBoxes=true;用于显示CheckBox: TreeList.OperationBe ...

  6. centos搭建免费的ssl证书,大部分浏览器均支持!(let’s encrypt 的使用记录)

    安装certbot wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto 然后就是通过这个脚本获取证书,安装前先将NGINX 停一下. ...

  7. php 获取今日、昨日、本周,上周、本月,上月,季度的起始时间戳和结束时间戳的方法

    php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日.上周.本月的起始 ...

  8. UWP ListView

    ListViewItem项填充整个宽度最大化<ListView.ItemContainerStyle> <Style TargetType="ListViewItem&qu ...

  9. Android零基础入门第58节:数值选择器NumberPicker

    原文:Android零基础入门第58节:数值选择器NumberPicker 上一期学习了日期选择器DatePicker和时间选择器TimePicker,是不是感觉非常简单,本期继续来学习数值选择器Nu ...

  10. C#高性能大容量SOCKET并发(四):缓存设计

    原文:C#高性能大容量SOCKET并发(四):缓存设计 在编写服务端大并发的应用程序,需要非常注意缓存设计,缓存的设计是一个折衷的结果,需要通过并发测试反复验证.有很多服务程序是在启动时申请足够的内存 ...