2019年9月

注意:因为es不允许root用户启动,所以需要新建新的用户来启动es

1.环境需求

新建普通用户es,单独为普通用户配置java11环境(es7需要java11 支持),然后在~/.bash_profile文件中配置好java环境变量:

export JAVA_HOME=~/software/jdk-11.0.3(java11所在地址 ~表示用户默认目录)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注意:配置好之后别忘记source ~/.bash_profile使环境变量生效。

查看java版本

java -version

每当启动es时,找不到java黄精,或java环境不对,都可以使用“source ~/.bashrc”启动一次,因为有时候有些系统启动是不默认运行bash_profile,当然在bashrc文件下添加环境变量也是一样。

2.配置elasticsearch.yml文件

进入elasticsearch/config文件夹下

#允许任意IP访问

network.host:0.0.0.0

#开放的端口

http.port: 9200

设置节点是否为master节点(true or false)

node.master: true

设置节点存储数据(true or false)

node.data: true

#集群间通信端口(可以修改)

transport.tcp.port: 9300

#添加跨域

http.cors.enabled: true
http.cors.allow-origin: "*"

#集群名称

cluster.name: es

#节点名称(集群内部节点名称不能相同)

node.name: master

#集群所有节点配置(你主机的ip地址,以及集群中es主机的ip地址,9300为es集群之间默认通信端口,要与设置的集群通信端口一致)如果只有一台设置只设置自己主机的就可以

discovery.seed_hosts: ["xx.xx.xx.xx:9300", "10.1.8.194:9300"]

集群内部master节点配置

cluster.initial_master_nodes: ["xx.xx.xx.xx:9300","xx.xx.xx.xx:9300"]

解释:设置两个节点为master节点如果一个节点挂了,另一个节点可以补上

#解决java.lang.UnsupportedOprationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled

因为Centos不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

3.系统配置问题(存在以下错误是在配置)

问题一:

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

解决切换到root用户

vim /etc/security/limits.conf

添加或修改如下内容

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

问题二

max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解决:切换到root用户,进入limits.d目录下修改配置文件。

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

修改如下内容:

* soft nproc 1024

#修改为

* soft nproc 2048

问题三

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

解决:切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=262144

并执行命令:

sysctl -p

4. 防火墙

关闭防火墙

service iptables stop

或者将9200端口开启(这个没试)