• CentOS7下搭建ElasticSearch,保存自己看


    参考:https://blog.csdn.net/omaoyaner/article/details/97618037

    参考:https://blog.csdn.net/zhangningkid/article/details/97915111

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/zhangningkid/article/details/97915111
    下载最新版ElasticSearch。 下载地址:https://www.elastic.co/cn/downloads/。并上传到CentOS上的/usr/local目录下。
    解压刚刚下载的ElasticSearch的压缩包
    tar -zxf elasticsearch-7.2.1-linux-x86_64.tar.gz
    1
    修改Linux系统的限制配置
    a. 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建权限。
    b. 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。ES在5.x版本之后,强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启动ES进程才可以。
    c. Linux低版本内核为线程分配的内存是128K。4.x版本的内核分配的内存更大。如果虚拟机的内存是1G,最多只能开启3000+个线程数。至少为虚拟机分配1.5G以上的内存。

    vim /etc/security/limits.conf
    es soft nofile 65536
    es hard nofile 65536
    es soft nproc 4096
    es hard nproc 4096

    修改系统控制权限
    a. 修改管理系统中的各种资源控制的配置文件。
    b. ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存

    vim /etc/sysctl.conf
    #当前用户拥有的内存权限太小
    vm.max_map_count=262144
    #让系统控制权限配置生效
    sysctl -p

    新建一个用户, 用于ElasticSearch启动(ElasticSearch5及以上版本,基于安全考虑,强制规定不能以root身份运行。)
    #创建用户
    useradd es
    #修改上述用户的密码
    passwd es
    #修改elasicsearch目录的拥有者
    chown -R es elasticsearch-7.2.1
    chown -R es /data/es

    修改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 设置可访问的客户端ip。0.0.0.0代表任意客户端访问
    http.port es对外提供的http端口,默认 9200
    discovery.seed_hosts es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
    cluster.initial_master_nodes es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
    discovery.zen.ping.unicast.hosts: 新节点通过广播的形式加入集群
    http.cors.enabled 是否支持跨域,是:true,在使用插件时需要此配置
    http.cors.allow-origin “*” 表示支持所有域名

    示例:

    cluster.name: es
    node.name: node-1
    node.master: true
    node.data: true
    network.host: 0.0.0.0

    cluster.initial_master_nodes: ["node-1"]
    discovery.zen.ping.unicast.hosts: ["192.168.227.131","..."]

    path.data: /data/es/data
    path.logs: /data/es/logs

    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false

    http.port: 9200

    http.cors.enabled: true
    http.cors.allow-origin: "*"


    启动ElasticSearch
    #切换用户
    su es
    #到ElasticSearch的bin目录下
    cd bin/
    ./elasticsearch
    #后台启动
    ./elasticsearch -d

    验证是否运行成功
    用浏览器打开:http://ip:9200.若能出现下图结果, 则表示启动成功。(需要打开监听端口 9200或关闭防火墙 )

    ————————————————
    版权声明:本文为CSDN博主「鸿祯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zhangningkid/article/details/97915111

  • 相关阅读:
    utf8编码和中文不能解码问题解决
    python环境的安装配置
    repo同一个仓的同一个changeId的提交
    Jenkins pipeline之将命令的运行结果赋值给变量
    repo和git常用的命令和场景
    docker 安装rabbitmq
    docker的一些概念
    mysql数据库sql优化原则
    数据库优化02
    MySQL数据库优化总结
  • 原文地址:https://www.cnblogs.com/jackduan/p/11772459.html
Copyright © 2020-2023  润新知