带你读《Elastic Stack 实战手册》之8:—— 3.4.1.1.安装Elasticsearch(本地及docker)(2)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之8:—— 3.4.1.1.安装Elasticsearch(本地及docker)(2)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(1) https://developer.aliyun.com/article/1231513


小结

 

本节对 ES 节点/集群部署所需环境对选择策略、必备软件等方面进行了阐述。


系统级别参数配置

 

ES 作为一个复杂的系统,对于服务器资源的要求相较于一般的服务要更严格,这样也能够保证,ES 节点可以更好的发挥其作用。本节将从各种系统级别的参数要求及修改意义方面进行阐述。

 

系统级别参数配置策略

 

ES 内部会启动包括而不仅限于 query 线程池、数据写入线程池、数据 refresh线程池、

segment merge 线程池等等。在启动时 ES 会要求系统中单个进程可用线程数超过 65535。

 

在 Linux 里万物皆文件,线程也可以看作一种特殊的文件。在启动时 ES 会要求系统中可打开的文件句柄数超过 65535。

 

在运行时,ES 会建议避免在运行过程中因为系统的缓存交换而产生的性能损耗。大部分操作系统有可能会将系统缓存中的数据交换到硬盘中。在 ES 节点部署的时候建议禁止这一交换行为。

 

在运行时,ES 会占用大量的内存进行一系列的数据处理。建议开启内存锁定的配置,将它所占用的内存进行锁定。

 

配置流程(太长不看版)

 

修改系统级别限制

 

sed -e '/^vm.max_map_count/d' \
        -i.bak \
        /etc/sysctl.conf; \
    sed -e '$a vm.max_map_count=655360' \
        -i.bak \
        /etc/sysctl.conf; \
    sed -e '/^* soft nofile/d' \
        -e '/^* hard nofile/d' \
        -e '/^elasticsearch soft nofile/d' \
        -e '/^elasticsearch hard nofile/d' \
        -e '/^* soft memlock/d' \
        -e '/^* hard memlock/d' \
        -e '/^elasticsearch soft memlock/d' \
        -e '/^elasticsearch hard memlock/d' \
        -i.bak \
        /etc/security/limits.conf; \
    sed -e '$a * soft nofile 655350' \
        -e '$a * hard nofile 655350' \
        -e '$a elasticsearch soft nofile 655350' \
        -e '$a elasticsearch hard nofile 655350' \
        -e '$a * soft memlock unlimited' \
        -e '$a * hard memlock unlimited' \
        -e '$a elasticsearch soft memlock unlimited' \
        -e '$a elasticsearch hard memlock unlimited' \
        -i.bak \
        /etc/security/limits.conf; \
    swapoff -a;

使所有修改生效 reboot

 

l 命令 sysctl -p 可以使 sysctl.conf 的配置生效

l 重启 reboot 或者重新登陆 Ctrl + D 可以使 limits.conf 中的配置生效

 

创建 ES 所用账号并切换 useradd -m elasticsearch; su elasticsearch;

 

配置流程(详解版)

 

调整机器中每个进程可以拥有的 VMA(虚拟内存区域)的数量

 

1、修改文件:/etc/sysctl.conf

2、添加/修改一行:vm.max_map_count=655360

3、否则可能会遇到报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 

调整机器中每个进程可打开的文件句柄数量

 

1、修改文件:/etc/security/limits.conf

2、添加/修改两组:(* 作用于所有用户,主要用于服务器直接部署 ES;elasticsearch作用于elasticsearch 用户,主要用于服务器 rpm 包部署)

l * soft nofile 65535 => * soft nofile 655350

l * hard nofile 65535 => * hard nofile 655350

l elasticsearch soft nofile 65535 => elasticsearch soft nofile 655350

l elasticsearch hard nofile 65535 => elasticsearch hard nofile 655350

否则可能遇到报错:max file descriptors [65535] for elasticsearch process is too

low, increase to at least [65536]

 

开启内存锁定配置

 

1、修改文件:/etc/security/limits.conf

2、添加/修改两组:

l * soft memlock 65535 => * soft memlock unlimited

l * hard memlock 65535 => * hard memlock unlimited

l elasticsearch soft memlock 65535 => elasticsearch soft memlock unlimited

l elasticsearch hard memlock 65535 => elasticsearch hard memlock unlimited

否则可能在开启了内存锁定时(bootstrap.memory_lock: true)遇到报错:memory

locking requested for elasticsearch process but memory is not locked

 

关闭内存交换区

 

1、swapoff -a

 创建 ES 使用账号

 

1、ES 在启动时默认不允许使用 root 账户,所以需要预先创建 ES 自己的账户

l useradd -m elasticsearch

 

然后通过命令切换到 elasticsearch 账户中进行后续操作

 

1、su elasticsearch

 

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(3) https://developer.aliyun.com/article/1231511

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
19天前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
40 5
|
21天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
34 5
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
153 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
3月前
|
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月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
4月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。
|
4月前
|
Ubuntu Oracle Java
如何在 Ubuntu VPS 上安装 Elasticsearch
如何在 Ubuntu VPS 上安装 Elasticsearch
47 0
|
4月前
|
存储 Ubuntu Oracle
在Ubuntu 14.04上安装和配置Elasticsearch的方法
在Ubuntu 14.04上安装和配置Elasticsearch的方法
47 0
|
4月前
|
存储 安全 Java
在CentOS 7上安装和配置Elasticsearch的方法
在CentOS 7上安装和配置Elasticsearch的方法
278 0
|
3天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序

相关产品

  • 检索分析服务 Elasticsearch版