美文网首页搜索引擎入门
在Linux环境下安装部署ElasticSearch过程整理

在Linux环境下安装部署ElasticSearch过程整理

作者: _时间海 | 来源:发表于2018-06-08 10:02 被阅读0次

    准备一个Linux系统

    我这里在虚拟机上装了一个 CentOS-7-x86_64-Minimal-1708.iso

    net-tools安装

    由于此版本的系统在ifconfig无法执行,所以安装net-tools
    yum install net-tools

    关闭防火墙firewall

    1. systemctl stop firewalld.service #停止firewall
    2. systemctl disable firewalld.service #禁止firewall开机启动
    3. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    JDK 8 安装

    yum -y list java*
    yum -y install java-1.8.0-openjdk*
    

    ElasticSearch 下载

    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

    安装部署

    将下载完的压缩包放到Linux文件夹中,然后执行启动
    [root@localhost bin]# ./elasticsearch

    启动过程中的错误解决

    异常1

    OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    [2018-04-27T11:08:42,374][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.4.jar:6.2.4]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]
        ... 6 more
    

    解决1

    看报错信息就是内存大小问题导致的,所以配置/elasticsearch-6.2.4/config/jvm.options
    加上
    8:-XX:ParallelGCThreads=2

    异常2

    [o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.4.jar:6.2.4]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]
        ... 6 more
    

    解决2

    Elasticsearch 服务默认无法 用root账户启动,新开一个用户
    #添加用户yyf
    adduser yyf
    #修改yyf用户的密码
    passwd yyf
    #授予权限 chown –R用户名 文件夹名 
    chown -R yyf  /opt/elas/*   
    #用yyf账户登录再次启动
    [root@localhost /]# su yyf
    #到elasticsearch目录的bin下,
    [yyf@localhost bin]$ ./elasticsearch
    

    异常3

    ERROR: [4] bootstrap checks failed
    [1]: initial heap size [16777216] not equal to maximum heap size [257949696]; this can cause resize pauses and prevents mlockall from locking the entire heap
    [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
    [3]: max number of threads [3818] for user [yyf] is too low, increase to at least [4096]
    [4]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    

    解决3

    [1]: 配置/elasticsearch-6.2.4/config/jvm.options JVM heap size
    -Xms500m
    -Xmx500m
    [2]: 每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量同[3]一起设置
    [3]: 最大线程个数太低。修改配置文件/etc/security/limits.conf 
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    
    [4]: (1)是以为操作系统的vm.max_map_count参数设置太小导致的,请使用root用户登录系统,执行以下命令: 
    sysctl -w vm.max_map_count=262144 
    并用以下命令查看是否修改成功 
    sysctl -a | grep "vm.max_map_count"
    如果能正常输出262144,则说明修改成功
    (2)或者切换到root用户修改配置sysctl.conf
    vi /etc/sysctl.conf 
    添加下面配置:
    vm.max_map_count=655360
    并执行命令:
    sysctl -p
    

    查看服务是否成功

    访问:http://192.168.176.128:9200/?pretty (换上自己的ip地址)
    返回结果如下

    {
       "name": "node-2",
       "cluster_name": "my-application",
       "cluster_uuid": "uOfUA9QfScqn2Jnri-UIhA",
       "version": {
           "number": "6.2.4",
           "build_hash": "ccec39f",
           "build_date": "2018-04-12T20:37:28.497551Z",
           "build_snapshot": false,
           "lucene_version": "7.2.1",
           "minimum_wire_compatibility_version": "5.6.0",
           "minimum_index_compatibility_version": "5.0.0"
       },
       "tagline": "You Know, for Search"
    }

    相关文章

      网友评论

        本文标题:在Linux环境下安装部署ElasticSearch过程整理

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