• ElasticSearch集群搭建及启动异常的问题


    ElasticSearch集群搭建

    本文采用ElasticSearch5.6.9版本,采用3台机器安装,分别为server01,server02,server03。机器的系统是CentOS6.9版本

    ElasticSearch集群是采用leader选举机制来产生master

    1.下载并解压

    1.1 官网下载地址:

    https://www.elastic.co/cn/downloads/elasticsearch

    1.2 上传到server01机器

    scp elasticsearch-5.6.9.tar.gz hadoop@server01:/hadoop

    1.3 解压

    tar -zxvf elasticsearch-5.6.9.tar.gz

    1.4 重命名

    mv elasticsearch-5.6.9 elasticsearch

    2.修改配置文件并启动

    进入elasticsearch/config目录

    2.1 修改elasticsearch.yml配置文件

    #集群名称,通过组播的方式通信,通过名称判断属于哪个集群
    cluster.name: es-cluster
    
    #节点名称,要唯一
    node.name: es1
    
    #数据存放位置
    path.data: /hadoop/elasticsearch/data
    
    #日志存放位置
    path.logs: /hadoop/elasticsearch/logs
    
    # centos6.x需要添加,不然会导致启动错误
    bootstrap.system_call_filter: false
    
    #es绑定的ip地址
    network.host: server01
    
    # http访问的端口
    http:port: 9200
    
    #初始化时可进行选举的节点
    discovery.zen.ping.unicast.hosts: ["server01", "server02", "server03"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    image

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyPcjtrr-1660621423961)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.2.png)]

    2.2 修改jvm.options文件(可选)

    vim config/jvm.options

    # 将虚拟机内存默认的2g改为512m
    # -Xms2g  
    # -Xmx2g  
    # 修改为  
    
    -Xms512m  
    -Xmx512m 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如果机器的内存比较小,设置为2g会导致如下错误

    Java HotSpot 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot allocate memory’ (errno=12)

    2.3 分发到server02,server03机器上

    scp -r /hadoop/elasticsearch hadoop@server02:/hadoop
    
    scp -r /hadoop/elasticsearch hadoop@server03:/hadoop
    
    • 1
    • 2
    • 3

    修改server02机器上的elasticsearch.yml配置文件

    node.name: es2
    
    network.host: server02
    
    • 1
    • 2
    • 3

    修改server03机器上的elasticsearch.yml配置文件

    node.name: es3
    
    network.host: server03
    
    • 1
    • 2
    • 3

    2.4 设置环境变量

    在server01,server02,server03机器上分别设置环境变量

    sudo vim /etc/profile

    export ES_HOME=/hadoop/elasticsearch
    export PATH=$PATH:$ES_HOME/bin
    
    • 1
    • 2

    使环境变量生效

    source /etc/profile
    
    • 1

    2.5 修改/etc/security/limits.conf配置

    * soft memlock unlimited
    * hard memlock unlimited
    
    * soft nofile 65536
    * hard nofile 131072
    
    * soft nproc 2048
    * hard nproc 4096
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    修改/etc/sysctl.conf文件配置

    添加下面配置:
    vm.max_map_count=655360
    
    并执行命令:
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5

    退出用户后登入有效

    2.6 启动elasticsearch集群

    bin/elasticsearch
    
    # 后台启动
    # bin/elasticsearch -d
    
    • 1
    • 2
    • 3
    • 4

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wL323lvM-1660621423962)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.3.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-op1EMtHD-1660621423962)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-1.4.png)]

    3.启动异常的问题

    image

    3.1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

    解决方案:

    切换到root用户下,编辑/etc/security/limits.conf文件

    vim /etc/security/limits.conf

    编辑内容如下:

    * soft nofile 65536
    
    * hard nofile 131072
    
    * soft nproc 2048
    
    * hard nproc 4096
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.2 max number of threads [1024] for user [hadoop] is too low, increase to at least [2048]

    解决方案:

    在root用户下

    vim /etc/security/limits.d/90-nproc.conf

    修改如下内容:

    # 将
    # * soft nproc 1024
    # 修改为
    
    * soft nproc 2048
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.3 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    解决方案:

    在root用户下

    编辑vim /etc/sysctl.conf文件

    添加下面配置:
    vm.max_map_count=655360
    
    
    并执行命令:
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.4 system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

    这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

    解决方案:

    elasticsearch.yml中配置bootstrap.system_call_filter为false

    bootstrap.system_call_filter: false
    
    • 1

    3.5 Java HotSpot 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot allocate memory’ (errno=12)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iFTqlGal-1660621423964)(https://raw.githubusercontent.com/zhang3550545/image_center/master/image-2018/es-install-error2.png)]

    这个问题表示jvm的内存不足

    解决方案:

    vim config/jvm.options

    # 将jvm内存参数2g改为512m
    # -Xms2g  
    # -Xmx2g  
    # 修改为  
    
    -Xms512m  
    -Xmx512m
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    m

  • 相关阅读:
    构建坚固防线:提升网站整体安防水平的有效途径
    Redis知识点总结-钊兵的笔记
    Linux C语言 UDP协议实现的网络聊天室
    Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState,Kotlin
    完整答题小程序源码/支持流量主/激励广告强点(答题小程序模板+题库)
    如何将 Langfuse 链接到自有 PostgreSQL 数据库并升级 PostgreSQL 版本
    删除的文件还能找回来吗?
    力扣-有效的数独
    【Python 常用脚本及命令系列 12.1 -- OpenCV 设置图片区域为某个颜色】
    请求头Authorization
  • 原文地址:https://blog.csdn.net/m0_67393157/article/details/126363109