Elascicsearch集群搭建

5 篇文章 0 订阅
5 篇文章 0 订阅

环境准备

  1. 使用的操作系统镜像为:CentOS-7-x86_64-Minimal-2009
  2. 需要提前准备ntp工具的离线安装包
  3. 在校园网中,三台虚拟机需进行ntpdate时间同步
  4. 在外网中,使用指令sudo ntpdate 0.asia.pool.ntp.org进行时间同步
  5. 本例集群共设三个节点,其中es-a作为集群master节点
    es-a:192.168.200.11
    es-b:192.168.200.12
    es-c:192.168.200.13

配置时间同步及主机映射

1.在三个节点全部安装ntp工具
复制ntp-rpms文件夹到/root目录下
yum -y localinstall /root/ntp-rpms/*.rpm
2.在三台虚拟机上全部配置时间同步timedatectl set-timezone Asia/Shanghai
3.在三台虚拟机中配置主机映射
vi /etc/hosts
192.168.200.12 es-b
192.168.200.13 es-c(另外两个节点同上,添加与本机不同的两条映射)

配置Java环境并开放端口

1.上传jdk1.8.0_211.tar.gz至三台虚拟机的/root目录下
2.su root
tar -zxvf jdk1.8.0_211.tar.gz
mkdir -p /usr/local/jdk
mv jdk1.8.0_211 /usr/local/jdk/
vi ~/.bashrc,并向该文件中追加以下内容
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_211
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
systemctl start firewalld
firewall-cmd --add-port=9200/tcp --zone=public --permanent
firewall-cmd --reload
systemctl stop firewalld
上述操作在三个节点分别配置一遍

安装elasticsearch

  1. 上传elasticsearch-7.2.1-linux-x86_64.tar.gz 至三台虚拟机的/root目录下
  2. su root
    tar -zxvf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /usr/local/
    cd /usr/local/
    mv elasticsearch-7.2.1/ elasticsearch
    useradd es
    chown -R es:es ./elasticsearch/
    修改/etc/sysctl.conf文件,添加以下内容
    fs.file-max=655360
    vm.max_map_count=262144
    向/etc/security/limits.conf文件,添加以下内容
    * soft nproc 204800
    * hard nproc 204800
    * soft nofile 655360
    * hard nofile 655360
    * soft memlock unlimited
    * hard memlock unlimited
    修改文件/etc/security/limits.d/20-nproc.conf中的内容
    * soft nproc 204800
    sysctl -p
    CTRL + D退出当前终端,而后重新登录
    可修改/usr/local/elasticsearch/config/jvm.options文件中的下列内容
    -Xms256m
    -Xmx256m
    上述操作在三个节点分别配置一遍
    3.su es(要以es用户登录!首先登录es-a)
    mkdir -p /home/es/data1/elasticsearch
    mkdir -p /home/es/data2/elasticsearch
    cd /usr/local/elasticsearch/config按如下内容修改elasticsearch.yml
    cluster.name: elkbigdata
    node.name: es-a
    node.master: true
    path.data: /home/es/data1/elasticsearch/, /home/es/data2/elasticsearch
    path.logs: /usr/local/elasticsearch/logs
    bootstrap.memory_lock: true
    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: [“es-a”]
    discovery.zen.ping.unicast.hosts: [“192.168.200.12:9300”, “192.168.200.13:9300”]

注:node.name三个节点不同;cluster.initial_master_nodes: [“es-a”]不变,三个节点都配es-a;discovery.zen.ping.unicast.hosts三个节点不同,每个节点记录的都是另外两个节点的IP

启动elasticsearch集群

1.分别以es用户登录es-a、es-b、es-c
nohup /usr/local/elasticsearch/bin/elasticsearch &
或者
nohup ./elasticsearch > test1.out &
tail -F test1.out
2.运行指令检查集群运行状态
curl http://es-a:9200/_cat/health?v
curl http://es_a:9200/_cat/nodes?v
在这里插入图片描述

问题集合

1.注意配置文件每一项冒号之后都有一个空格
2.启动集群之后报错Killed
解决:修改jvm.options ,这里我是改小
vi /usr/local/elasticsearch/config/jvm.options
-Xms256m
-Xmx256m
重新启动即可
在这里插入图片描述

3.启动集群之后报错
{“error”:{“root_cause”:[{“type”:“master_not_discovered_exception”,“reason”:null}],“type”:“master_not_discovered_exception”,“reason”:null},“status”:503}
或者如下:
[es-a] master not discovered or elected yet, an election requires at least 2 nodes with ids from
解决:
是由于不是第一次启动,而之前配置了path.data,在该路径下可能有一些缓存垃圾导致elasticsearch.yml配置文件再次修改无法生效,将path下的节点文件删除,重新启动即可
三个节点都进行上述操作三个节点都进行上述操作,重新启动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值