美文网首页
docker安装elasticsearch篇

docker安装elasticsearch篇

作者: 西西弗斯XD | 来源:发表于2021-12-07 20:32 被阅读0次

    一、安装es前置条件

    1. 文件创建数
    • 修改Linux系统的限制配置,将文件创建数修改为65536个 :

    1). 修改系统中允许应用最多创建多少文件等的限制权限。
    Linux默认来说,一般限制应用最多创建的文件是65535个。
    但是ES至少需要65536的文件创建数的权限。

    2). 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。

    vi /etc/security/limits.conf #新增如下内容在limits.conf文件中 
    * soft nofile 65536 
    *  hard nofile 65536 
    *  soft nproc 4096 
    *  hard nproc 4096
    
    2. 系统控制权限
    • ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。
      Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存。
    vi /etc/sysctl.conf 
    添加参数:新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小 
    vm.max_map_count=262144
    
    (max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,
    默认vm.max_map_count=65530,因此缺省配置下,单个jvm能开启的最大线程数为其一半,即3w左右)
    
    重启生效:让系统控制权限配置生效
     /sbin/sysctl -p
    # 查看
    sysctl -a|grep vm.max_map_count
    

    二、安装es(单机)

    docker官网:

    https://hub.docker.com/_/elasticsearch
    

    基础镜像:

    docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2
    

    启动es:

    docker run -p 9200:9200 \
    --name es \
    -p  9300:9300 \
    -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" \
    -e "discovery.type=single-node" \
    -v /var/data/es/data:/usr/share/elasticsearch/data \
    -v /var/data/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -d docker.elastic.co/elasticsearch/elasticsearch:7.15.2
    

    启动前先确认文件挂载目录是否存在, 并且确认docker用户的是否拥有读写权限。
    赋值权限: chmod 777 data
    容器默认使用的用户: elasticsearch(uid:gid 1000:1000)

    elasticsearch.yml 默认配置:

    #  es集群名称,用于es后续集群搭建,单机版可简单配置
    cluster.name: "docker-cluster"
    
    #  默认是127.0.0.1:9200 本机访问,配置之后别的机台网段都能访问
    network.host: 0.0.0.0
    
    # ES 7 集群中默认为每个 Node 节点最大 1000 个分片,用于skywalking存储索引时候需要分配分片数,这边配置4000
    cluster.max_shards_per_node: 4000
    
    # 默认情况下Fielddata会不断占用内存,直到它触发了[fielddata circuit breaker];indices.fielddata.cache.size: unbounded (默认不限制),当达到size时,cache会剔除旧的fielddata;indices.breaker.fielddata.limit:60%(默认head60%),indices.breaker.fielddata.limit 必须大于 indices.fielddata.cache.size,否则只会触发fielddata circuit breaker,而不会剔除旧的fielddata。
    indices.fielddata.cache.size: 512mb
    
    

    启动日志:

    docker logs -f es
    

    参考:
    https://www.elastic.co/guide/en/elasticsearch/reference/7.15/docker.html

    The End

    相关文章

      网友评论

          本文标题:docker安装elasticsearch篇

          本文链接:https://www.haomeiwen.com/subject/ypdaxrtx.html