@TOC在linux安装elasticsearch-7.6.2 所遇到的坑
问题描述
刚接触学习elasticsearch,在linux环境安装就遇到了一些问题
运行角色问题
elasticsearch不建议使用root账号去启动,我们需要创建一个es账号去运行
useradd testuser 创建用户es
passwd ****** 给已创建的用户es设置密码
chown -R /usr/local/elasticsearch-7.6.2 设置权限
无法绑定请求地址问题
org.elasticsearch.bootstrap.StartupException:BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];在这里插入代码片
这个保存是没有指定本节点ip,或者配置有问题
# 设置es当前节点的IP地址:
network.host: 192.168.*.*
# 设置es节点的http端口号:
http.port: 9200
# 集群间相互通信的tcp端口
transport.tcp.port: 9300
elasticsearch用户拥有的内存权限太小
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:
切换到root用户
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
上述方法修改之后,如果重启虚拟机将失效,所以:
解决办法:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
官网建议限制住elasticsearch占用的内存情况
memory locking requested for elasticsearch process but memory is not locked
解决方法一(关闭bootstrap.memory_lock:,会影响性能):
vim /etc/elasticsearch/elasticsearch.yml // 设置成false就正常运行了。
bootstrap.memory_lock: false
解决方法二(开启bootstrap.memory_lock:):
- 修改文件/etc/elasticsearch/elasticsearch.yml,上面那个报错就是开启后产生的,如果开启还要修改其它系统配置文件
bootstrap.memory_lock: true
- 修改文件/etc/security/limits.conf,最后添加以下内容。
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited
- 修改文件 /etc/systemd/system.conf ,分别修改以下内容。
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
改好后重启下系统。再启动elasticsearch就没报错了 。
cluster.initial_master_nodes: [“node-1”]
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 configured
修改config目录下的 elasticsearch.yml文件
cluster.initial_master_nodes: ["node-1"]