elasticsearch 单节点搭建与爬坑记录

elasticsearch 单节点搭建与爬坑记录

 

prepare

 

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

  • linux---centos7java

  • 安装完毕的jdklinux

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

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

 

用户组

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

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

  1. 建立新用户服务器

    详见:curl

    http://www.javashuo.com/article/p-wxlmecgj-bs.htmlelasticsearch

  2. 解压缩安装包

 

启动前修改参数

我我的的建议是要根据本身机器的实际状况判断是否须要更改,不足的就改,有余的能够不改(以root用户修改

 

vim /etc/security/limits.conf

增长最大文件数

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

拓展阅读:http://www.javashuo.com/article/p-oywwkovl-bs.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+端口访问的问题

http://www.javashuo.com/article/p-hvcvguun-bs.html