zoukankan      html  css  js  c++  java
  • ElasticSearch 7.1.1 集群环境搭建

    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
  • 相关阅读:
    吴恩达 机器学习笔记
    三个水杯
    架构之美读书笔记05
    架构之美读书笔记04
    架构之美读书笔记03
    架构之美读书笔记02
    架构之美读书笔记01
    《需求工程——软件建模与分析》阅读笔记03
    《需求工程——软件建模与分析》阅读笔记02
    16下学期进度条2
  • 原文地址:https://www.cnblogs.com/remainsu/p/elasticsearch-711-ji-qun-huan-jing-da-jian.html
Copyright © 2011-2022 走看看