zoukankan      html  css  js  c++  java
  • elasticsearch安装和配置,elasticsearch启动报错:can not run elasticsearch as root

    elasticsearch安装和配置

    elasticsearch启动报错:can not run elasticsearch as root

    elasticsearch启动报错:ERROR: [3] bootstrap checks failed
    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]      
    [2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]                        
    [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    ================================

    ©Copyright 蕃薯耀 2021-02-20

    https://www.cnblogs.com/fanshuyao/

    一、elasticsearch解压安装
    1、解压elasticsearch

    cd /java/es6/
    tar -zxvf elasticsearch-6.8.13.tar.gz

    2、修改文件夹名称和移动位置

    mv elasticsearch-6.8.13 /java/elasticsearch6

    3、进入配置文件目录

    cd /java/elasticsearch6/config

    [root@host-12 java]# cd /java/elasticsearch6/config
    [root@host-12 config]# ll
    总用量 32
    -rw-r-----. 1 631 503 2853 10月 16 17:04 elasticsearch.yml
    -rw-r-----. 1 631 503 3885 10月 16 17:04 jvm.options
    -rw-r-----. 1 631 503 13085 10月 16 17:17 log4j2.properties
    -rw-r-----. 1 631 503 473 10月 16 17:17 role_mapping.yml
    -rw-r-----. 1 631 503 197 10月 16 17:17 roles.yml
    -rw-r-----. 1 631 503 0 10月 16 17:17 users
    -rw-r-----. 1 631 503 0 10月 16 17:17 users_roles


    4、创建数据和日志目录

    mkdir -p /java/elasticsearch6/esdata
    
    mkdir -p /java/elasticsearch6/eslogs

    5、修改配置文件:

    vi /java/elasticsearch6/config/elasticsearch.yml

    修改内容:

    #集群名称
    cluster.name: myes6
    #节点名称
    node.name: node-11
    #数据目录
    path.data: /java/elasticsearch6/esdata
    #日志目录
    path.logs: /java/elasticsearch6/eslogs
    # 是否锁定内存在启动时
    bootstrap.memory_lock: false
    #centos6.x操作系统不支持SecComp,默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
    #如果不配置,会出现错误:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    bootstrap.system_call_filter: false
    #IP地址
    network.host: 192.168.170.11
    #端口号
    http.port: 9200
    #集群发现
    discovery.zen.ping.unicast.hosts: ["192.168.170.11", "192.168.170.12", "192.168.170.13"]


    二、elasticsearch设置环境变量

    1、配置elasticsearch运行的环境变量,简化命令,配置后,不用拼写完整路径:

    vi /etc/profile

    2、在文件的最后加上:

    ELASTICSEARCH_HOME=/java/elasticsearch6/
    PATH=$PATH:$ELASTICSEARCH_HOME/bin
    export ELASTICSEARCH_HOME PATH

    3、让环境变量配置立即生效:

    source /etc/profile

    三、启动elasticsearch

    /java/elasticsearch6/bin/elasticsearch

    如果设置环境变量,则可以:

    elasticsearch

    elasticsearch启动时报错:can not run elasticsearch as root

    不能使用root启动

    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.8.13.jar:6.8.13]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.8.13.jar:6.8.13]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.8.13.jar:6.8.13]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.8.13.jar:6.8.13]
    ... 6 more

    增加es用户:

    groupadd es
    
    useradd es -g es
    
    passwd es

    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

    #设置文件夹的权限

    cd /java
    
    chown -R es:es elasticsearch6

    切换为es用户:

    su es

    再次启动:

    /java/elasticsearch6/bin/elasticsearch


    ERROR: [3] bootstrap checks failed
    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
    [2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]
    [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    [2021-02-04T16:28:09,472][INFO ][o.e.n.Node ] [node-11] stopping ...
    [2021-02-04T16:28:09,546][INFO ][o.e.n.Node ] [node-11] stopped
    [2021-02-04T16:28:09,546][INFO ][o.e.n.Node ] [node-11] closing ...
    [2021-02-04T16:28:09,576][INFO ][o.e.n.Node ] [node-11] closed

    切换到Root用户:

    su root

    [1][2]解决(切换到root用户):

    vi /etc/security/limits.conf

    文件后面添加下面的内容:

    # soft表示为超过这个值就会有warnning
    # hard则表示不能超过这个值
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096

    如果[1]方法没有解决[2],可以再执行下面的解决[2](切换到root用户):
    【20-nproc.conf】这个文件可能每个人都不一样,可以进入目录查看具体的文件

    vi /etc/security/limits.d/20-nproc.conf

    Centos7默认就是:4096,不需要再修改,如果不是,请修改

    * soft nproc 4096
    root soft nproc unlimited

    [3]解决(切换到root用户):

    vi /etc/sysctl.conf

    增加内容:

    vm.max_map_count=655360

    保存后,执行命令:

    sysctl -p


    最后重启Linux系统(必须),不重启不生效

    切换为es用户:

    su es

    再次启动:

    /java/elasticsearch6/bin/elasticsearch

    或后台启动:

    /java/elasticsearch6/bin/elasticsearch -d


    后台启动可以通过jsp查看有没有进程。
    [root@host-11 ~]# jps
    992 QuorumPeerMain
    1490 Elasticsearch
    1551 Jps


    启动成功后,进行验证:
    [node-11] publish_address {192.168.170.11:9200}, bound_addresses {192.168.170.11:9200}
    [node-11] license [bf28e518-3560-4e69-a605-4e97b2055ba7] mode [basic] - valid


    进行验证:
    浏览器打开:

    http://192.168.170.11:9200/

    或者在Linux命令窗口验证:

    curl http://192.168.170.11:9200/

    返回结果:
    {
    "name" : "node-11",
    "cluster_name" : "myes6",
    "cluster_uuid" : "xDGeM7glQECODLuS32Qo9A",
    "version" : {
    "number" : "6.8.13",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "be13c69",
    "build_date" : "2020-10-16T09:09:46.555371Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.3",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
    },
    "tagline" : "You Know, for Search"
    }

    查看集群状态:

    http://192.168.170.11:9200/_cluster/stats?pretty

    查看单个节点状态:

    http://192.168.170.11:9200/_nodes/node-11/process?pretty

    查看ES集群健康状态

    http://192.168.170.11:9200/_cluster/health?pretty

    {
    "cluster_name" : "myes6", //集群名称
    "status" : "green", //集群的状态红绿灯,绿:健康,黄:亚健康,红:病态
    "timed_out" : false,
    "number_of_nodes" : 2, //节点数
    "number_of_data_nodes" : 2, //数据节点数
    "active_primary_shards" : 12,
    "active_shards" : 24,
    "relocating_shards" : 0,
    "initializing_shards" : 0,
    "unassigned_shards" : 0,
    "delayed_unassigned_shards" : 0,
    "number_of_pending_tasks" : 0,
    "number_of_in_flight_fetch" : 0,
    "task_max_waiting_in_queue_millis" : 0,
    "active_shards_percent_as_number" : 100.0
    }

    查看指定索引库的健康状态

    http://192.168.170.11:9200/_cluster/health/stu?pretty

    多个索引:

    http://192.168.170.11:9200/_cluster/health/index_name1,index_name2?pretty

    查看集群的主节点:
    浏览器打开:

    http://192.168.170.12:9200/_cat/master?v

    或者在Linux命令窗口验证:

    curl 192.168.170.12:9200/_cat/master?v

    输出内容:
    id host ip node
    CDH9HpfRRmaAN3VBbj4Vow 192.168.170.11 192.168.170.11 node-11

    (如果文章对您有所帮助,欢迎捐赠,^_^)

    ================================

    ©Copyright 蕃薯耀 2021-02-20

    https://www.cnblogs.com/fanshuyao/

    今天越懒,明天要做的事越多。
  • 相关阅读:
    Linux基础之什么是Linux
    JavaWeb之AJAX
    JavaWeb之XML
    JavaWeb之Servlet组件
    JavaWeb之JSP
    JavaWeb之HTTP概述
    JavaWeb之开发环境搭建
    JavaWeb之JQuery
    JavaWeb之javaScript
    ddd领域驱动
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14422126.html
Copyright © 2011-2022 走看看