如果Linux中之前安装了jdk1.8并配置了环境变量,会导致elasticsearh无法启动,因为elasticsearh默认支持的jdk的版本是11。
具体的报错信息暂无图示,不过我们可以修改bin/elasticsearch-env文件解决这个问题,具体修改内容如下:
if [ ! -z "$JAVA_HOME" ]; then JAVA="$JAVA_HOME/bin/java" else if [ "$(uname -s)" = "Darwin" ]; then JAVA="$ES_HOME/jdk/Contents/Home/bin/java" else JAVA="$ES_HOME/jdk/bin/java" fi fi
将此段文本修改成如下:
if [ "$(uname -s)" = "Darwin" ]; then JAVA="$ES_HOME/jdk/Contents/Home/bin/java" else JAVA="$ES_HOME/jdk/bin/java" fi
之后保存退出便可
关闭防火墙在访问elasticsearch前,请确保防火墙是关闭的,执行命令:
#暂时关闭防火墙 systemctl stop firewalld 或者 #永久设置防火墙状态 systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原 systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原常见报错 报错一.[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
vi /etc/security/limits.conf追加以下内容: * soft nofile 65536 * hard nofile 65536 此文件修改后需要重新登录用户,才会生效报错二. [2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]
vi /etc/security/limits.conf 配置,如下: * soft nproc 2048 * hard nproc 4096报错三.[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vi /etc/sysctl.conf追加以下内容: vm.max_map_count=655360 保存后,执行: sysctl -p报错四.[4]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must beERROR: Elasticsearch did not exit normally - check the logs at /usr/local/java/elasticsearch-7.7.0/logs/elasticsearch.log
在elasticsearch的config目录下,修改 elasticsearch.yml 配置文件,将下面的配置加入到该配置文件中:
cluster.initial_master_nodes: ["node-1"] #这里的node-1为node-name配置的值



