Linux下Elasticsearch7.2 安装指南
注意:因为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端口开启(这个没试)
评论已关闭