我在做了很多研究后尝试了以下方法。现在它对我有用了。首先,如果使用 Elastic Search 5 或 6,请确保是否安装了 Java。对于版本7,我们不需要特别安装它。
激活服务:
在 nano 编辑器中打开 yml 文件进行以下设置。
sudo nano /etc/elasticsearch/elasticsearch.yml
请确认以下设置:(取消以下行的注释,并且它们应该从开头开始,没有任何空格)
network.host: 127.0.0.1
http.port: 9200
discovery.seed_hosts: []
请确认位于'/etc/elasticsearch/jvm.options'的jvm.options文件的配置:
sudo nano /etc/elasticsearch/jvm.options
内存分配 Xms
和 Xmx
:
为了获得最佳性能,请不要超过50%的必要内存。如果您了解swappiness和timeout等其他设置,则可以进行微调,但是如果您不确定,请不要触碰它们。
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms4g
-Xmx4g
我有8GB的内存,因此分配了4GB。可以随意分配-Xms2048m
和-Xmx2048m
等在集合{1024m、750m、512m、256m}中。这取决于你的使用需求。
在修复以上问题后,请运行以下命令并重新启动系统。我们需要重新启动,因为我们编辑了系统范围的环境配置以生效。
通过docker和其他媒介进行安装并不是问题。但是,从两种方式启动服务会产生冲突,因为监听的TCP端口不能重复。简而言之,从docker拉取的镜像或本地安装中运行elastic search服务。不要同时运行两者。如果出现端口重复的错误,请确保执行以下命令:
sudo systemctl stop elasticsearch.service
为了让Elasticsearch在系统重启时自动重新加载,请使用以下命令:(如果是通过wget&apt /从二进制文件/任何其他弹性搜索安装过程安装的,而不是docker镜像拉取。只需重新加载守护程序即可对于docker(第一个命令)):
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
对我来说它很好用。希望这能澄清问题。