Elasticsearch使用问题总结

Elasticsearch使用问题总结

 

今天下载了elasticsearch的7.x版本,使用bin/elasticsearch -d 启动后,报出如下错误:

1:can not run elasticsearch as root

原来,启动的时候不能使用root用户启动,无奈,只能创建一个新用户

用户创建

  1. 创建用户:
useradd -m es
  1. 设置密码:
passwd es

更改文件拥有者(chown命令)

 chown -R es:es /usr/local/java/elasticsearch-7.9.0/

1.命令格式:

    chown [选项]... [所有者][:[组]] 文件...

2.命令功能:

    通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

  3.命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

    -deference 作用于符号链接的指向,而不是链接文件本身

切换用户

su   es

再次启动成功启动

 

2:报错信息:

future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_211/jre] does not meet this requirement
解决办法(讲解):
由于Elasticsearch依赖于jdk,es和jdk有着对应的依赖关系。如果本地安装了jdk8或者和es不匹配的版本就会报错。

elasticsearh从7.0开始默认安装了java运行环境,以便在没有安装java运行环境的机器上运行。如果配置了环境变量JAVA_HOME,则elasticsearh启动时会使用JAVA_HOME作为java路径,否则使用elasticsearh根目录下jdk目录为java路径。

解决此问题:

linux:

修改elasticsearch-env

 vi elasticsearch-7.9.0/bin/elasticsearch-env

 

 3: 浏览器访问localhost:9200 无法访问,   需要开启防火墙端口9200

开启端口:9200
firewall-cmd --zone=public --add-port=9200/tcp --permanent

重启防火墙:
firewall-cmd --reload

查询端口号9200 是否开启:
firewall-cmd --query-port=9200/tcp

 

4、再次访问依然无法访问,修改   elasticsearch.yml   配置文件,允许外网访问。

vi /usr/local/java/elasticsearch-7.9.0/config/elasticsearch.yml 

 

5: 再次启动,哈哈,依然报错

 文件描述符:[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 be
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/java/elasticsearch-7.9.0/logs/elasticsearch.log

解决:

elasticsearchconfig目录下,修改  elasticsearch.yml 配置文件,将下面的配置加入到该配置文件中:

cluster.initial_master_nodes: ["node-1"] #这里的node-1为node-name配置的值

 

 

 再次启动:

 

 

 

 

 

 

 

 

 

 



 

posted @ 2020-11-25 18:52  邓维-java  阅读(3224)  评论(0编辑  收藏  举报