Elasticsearch-单机部署避坑指南

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 引言  ElasticSearch是一个基于Lucene的搜索引擎,它提供了一个基于RESTful web接口的分布式多用户的全文搜索引擎。ElasticSearch可以用来存储需要检索和统计的数据,它支持聚合、百分比、分段统计等,也可以用来存储日志,例如ELK(Elasticsearch+Logstash+Kibana)日志分析系统。

引言


  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
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
4月前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
689 4
快速上手 Elasticsearch:Docker Compose 部署详解
|
4月前
|
存储 监控 搜索推荐
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
|
4月前
|
搜索推荐 Java 数据处理
Elasticsearch搜索分析引擎本地部署与远程访问
Elasticsearch搜索分析引擎本地部署与远程访问
|
9天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
4月前
|
存储 监控 API
Elasticsearch 8.X Rollup 功能详解及避坑指南
Elasticsearch 8.X Rollup 功能详解及避坑指南
48 0
|
14天前
|
Kubernetes 容器 Perl
k8s 部署 elasticsearch 单节点
k8s 部署 elasticsearch 单节点
|
24天前
|
JSON 测试技术 API
黑马商城 Elasticsearch从入门到部署 RestClient操作文档
这篇文章详细介绍了如何使用Java的RestHighLevelClient客户端与Elasticsearch进行文档操作,包括新增、查询、删除、修改文档以及批量导入文档的方法,并提供了相应的代码示例和操作步骤。
|
24天前
|
JSON 自然语言处理 Java
Elasticsearch从入门到部署 文档操作 RestAPI
这篇文章详细介绍了Elasticsearch中文档的增删改查操作,并通过Java的RestHighLevelClient客户端演示了如何通过REST API与Elasticsearch进行交云,包括初始化客户端、索引库的创建、删除和存在性判断等操作。
|
1月前
|
存储 安全 Java
[elasticsearch]部署安装单节点和集群
[elasticsearch]部署安装单节点和集群
|
3月前
|
存储 Java API
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)