Elasticsearch-单机部署避坑指南

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 引言  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
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
存储 监控 搜索推荐
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
|
6月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
2618 0
|
存储 监控 API
Elasticsearch 8.X Rollup 功能详解及避坑指南
Elasticsearch 8.X Rollup 功能详解及避坑指南
|
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
|
SQL 分布式计算 大数据
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
312 2
|
Kubernetes 容器 Perl
k8s 部署 elasticsearch 单节点
k8s 部署 elasticsearch 单节点
|
JSON 测试技术 API
黑马商城 Elasticsearch从入门到部署 RestClient操作文档
这篇文章详细介绍了如何使用Java的RestHighLevelClient客户端与Elasticsearch进行文档操作,包括新增、查询、删除、修改文档以及批量导入文档的方法,并提供了相应的代码示例和操作步骤。
|
JSON 自然语言处理 Java
Elasticsearch从入门到部署 文档操作 RestAPI
这篇文章详细介绍了Elasticsearch中文档的增删改查操作,并通过Java的RestHighLevelClient客户端演示了如何通过REST API与Elasticsearch进行交云,包括初始化客户端、索引库的创建、删除和存在性判断等操作。
|
存储 安全 Java
[elasticsearch]部署安装单节点和集群
[elasticsearch]部署安装单节点和集群
229 0
下一篇
开通oss服务