您现在的位置是:首页 > 文章详情

Elasticsearch-单机部署避坑指南

日期:2018-10-07点击:622

引言


ElasticSearch是一个基于Lucene的搜索引擎,它提供了一个基于RESTful web接口的分布式多用户的全文搜索引擎。ElasticSearch可以用来存储需要检索和统计的数据,它支持聚合、百分比、分段统计等,也可以用来存储日志,例如ELK(Elasticsearch+Logstash+Kibana)日志分析系统。本文主要介绍Elasticsearch的单机部署以及如何解决部署过程中碰到的各种坑。

部署指南


  1. 首先进入Elasticsearch官方下载页下载Elasticsearch安装包,笔者下载的是6.4.2的linux版本
img_d80219ef3c187b05eb3c89531f9f66ca.png
download elasticsearch
  1. 使用tar命令解压并修改文件【elasticsearch-6.4.2/config/elasticsearch.yml】,修改network这块,将【network.host】修改为部署服务器的IP地址,【http.port】去掉前面的注释【#】。
img_9d2a3d18a3410f127d7c551532146b38.png
elasticsearch.yml
  1. 使用非root用户运行如下命令
elasticsearch-6.4.2/bin/elasticsearch -d 
  1. 启动成功运行命令【curl http://{IP}:9200】能看到如下输出就证明启动成功了:
{ "name" : "TUJE35D", "cluster_name" : "elasticsearch", "cluster_uuid" : "-fsA4mjPTyOe0fF-bPvvmA", "version" : { "number" : "6.4.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "04711c2", "build_date" : "2018-09-26T13:34:09.098244Z", "build_snapshot" : false, "lucene_version" : "7.4.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" } 

填坑指南


  1. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
img_0e506011987bcf82740729969f881071.png
can not run elasticsearch as root

这个错误是因为使用了root账户启动Elasticsearch,换个非root账户启动就可以了;

  1. Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch-6.4.2/config/jvm.options
img_2c77512ebea8f170211d2bf6d991fcaa.png
AccessDeniedException

这是文件权限问题,启动Elasticsearch的用户没有elasticsearch-6.4.2目录的权限,运行如下命令修改文件夹权限

chown -R {启动Elasticsearch的用户}:{启动Elasticsearch用户所属的用户组} elasticsearch-6.4.2 
  1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

这是用户最大可创建的文件数太小,只有4096,无法创建本地文件,需要增加到65536。切换到root用户,编辑limits.conf配置文件

vi /etc/security/limits.conf 

添加如下两行,然后保存

{启动Elasticsearch的用户} soft nofile 65536 {启动Elasticsearch的用户} hard nofile 65536 
  1. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这是因为设置的最大虚拟内存太小,切换到root用户下,修改配置文件sysctl.conf

vi /etc/sysctl.conf 

添加下面配置:

vm.max_map_count=262144 

并执行命令:

sysctl -p 
原文链接:https://yq.aliyun.com/articles/652942
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章