• elasticsearch 单节点搭建与爬坑记录


    elasticsearch 单节点搭建与爬坑记录

     

    prepare

     

    • 虚拟机或者云服务器(这里用的是阿里云ECS)

    • linux---centos7

    • 安装完毕的jdk

    • 相应的安装包(在https://www.cnblogs.com/G-Aurora/p/13099459.html中有快速下载的镜像站)

    • ps.下文主要指出主要注意的地方,步骤按照标注的数字来即可(编写此文时使用的是市面上多数新版参考书所使用的Elasticsearch5.x版)

     

    用户组

    首先需要高度关注的是文件夹的“归属”和权限。

    Elasticsearch在Linux下只能通过root用户启动。并且为了尽量避免解压缩后再次回头修改文件夹的”归属“,我建议使用新建的用户解压安装包,这样解压缩后的文件的归属就直接归属于新用户。

    1. 创建新用户

      若出现如下报错就是需要解决文件夹归属问题

      详见:https://www.cnblogs.com/G-Aurora/p/13100261.html 中的 “为文件更改归属&赋权”

    2. 解压缩安装包

     

    启动前修改参数

    我个人的建议是要根据自己机器的实际情况判断是否需要更改,不足的就改,有余的可以不改(以root用户修改

     

    vim /etc/security/limits.conf

    增加最大文件数

    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    

    拓展阅读:https://www.cnblogs.com/youngerger/p/9128245.html

     

    所有配置完成后启动出现:

    ERROR: bootstrap checks failed
    max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
    

    那是因为配置没有生效,我们可以使用

    ulimit -Hn
    

    来进行检验,如果小于等于65535,那么通过

    ulimit -Hn 65536
    

    使配置生效,再次使用ulimit -Hn进行检验即可

     

    哈哈,但是还是有可能报相同的错误

    例如在我的启动过程中,我是使用xshell同时开了为root和es两个用户开了两个窗口,当我在root下修改了limits.conf并ulimit -Hn 65536后,分别使用root和es使用ulimit -Hn进行检验,发现两个用户的返回结果不一样,es的还是默认的65535

    此时你可以选择

    • 重启
    • 在返回了已更改的ulimit -Hn结果的用户下(root),切换为es再进行启动,(当然后面的配置要完成)。Great,you get it.

     

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

    增大最大进程数

    * soft nproc 2048  //修改,而非添加
    

    在我的ECS机器上只发现了20-nproc.conf文件,配置参数有余,而且应该不用手动创建90-nporoc.conf文件(后来事实证明也是如此)

    拓展阅读:https://yq.aliyun.com/articles/238584

    对于拓展文章的拓展:https://www.cnblogs.com/ftl1012/p/ulimit.html

    需要考虑修改nproc的情况 :

    • Cannot create GC thread. Out of system resources
    • java.lang.OutOfMemoryError: unable to create new native thread

     

    vim /etc/sysctl.conf

    增加虚拟内存

    vm.max_map_count=655360
    

    记得

    sysctl -p
    

     

    启动

    在es用户下进入elasticsearch/bin

    使用

    elasticsearch
    

    即可启动

     

    检验

    • 通过curl

      curl -XGet 'http://localhost:9200/'
      

    • 任意用户使用jps

     

    解决只能通过localhost+端口访问的问题

    https://www.cnblogs.com/G-Aurora/p/13111162.html

     

  • 相关阅读:
    归档模式与非归档模式之间的转换
    Cognos 常见错误解决办法
    Informatica 错误信息解决办法汇总
    转摘:解决动态列固定行月季年组合式报表
    数据库名、实例名、全局数据库名、服务名的区别
    转摘:维度与指标混合嵌入(合计)设计
    WinForm使用XML动态加载多语言
    windows中最重要的三个动态链接库及功能
    什么是.Net的异步机制(Invoke,BeginInvoke,EndInvoke) step 2
    深入理解.net服务器控件
  • 原文地址:https://www.cnblogs.com/G-Aurora/p/13111230.html
Copyright © 2020-2023  润新知