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

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

 

3.4.入门篇

3.4.1.Elastic Stack 安装部署

3.4.1.1.安装Elasticsearch(本地及docker)


创作人陈晨

审稿人刘帅

 

本章介绍 Elasticsearch (简称 ES )的安装和部署,将会从以下几个方面进行阐述:

 

l 环境准备

l 系统级别参数配置

l 下载、安装及启动

l 常见问题及解决方案

 

环境准备

 

ES 和其他的服务一样,也是部署在服务器上进行使用的系统,为了能够让它更好的支持我们的实际使用,ES 节点/集群的部署环境就显得尤为重要。本节将从系统环境的选择,必须基础应用的安装等方面进行阐述。

 

环境选择策略


操作系统

 

由于绝大部分 ES 集群的部署环境都是基于公有云 Linux 的,所以本文主要以 CentOS7 为基础进行阐述,同时也会针对 Windows 和 MacOS 环境的安装部署进行简要描述。

选择 CentOS 7 作为基础系统有以下一些考虑:

 

l ES 虽然是基于JVM 上运行的 Java 项目,但它在启动、运行时会对一些环境参数,如虚拟内存数、文件句柄等有所要求

l 国内的 ES 使用和部署中,以 CentOS 和 Debian 为主,存在少量的 Ubuntu 和 极少量的 Windows 的服务器

 

官方团队对 64 位系统进行了稳定性测试和系统性兼容,其中除了以下一些版本以外都可以较好的支持:

 

l CentOS 家族(6、7、8)中,CentOS6 不支持 7.9.2 版本捆绑的 JDK15+

l Debian 家族(7~10)中, Debian 7 从 5.x 版本开始不支持

l Ubuntu 家族(14、16、18)中,Ubuntu 14.04 从 7.x 版本开始不支持,但 Ubuntu 16,18 都支持 7.x 。

l Windows 家族(Windows server 2012/R2、2016、2019)中,只有 Windows server 2019 对 ES 7.7 之前的版本兼容性有限。

 

再结合通用云厂商和自建服务器的操作系统选型中,CentOS7 得到了较好的支持和维护,所以此处我们选择以 CentOS7 作为首选操作系统

 

内存、CPU

 

ES 节点启动的默认需求为1C2G (1 核 CPU,2GB 内存)

 

通过调整 $ES_HOME/config/jvm.options 文件中的堆栈配置,也可以让 ES 实例在 1C1G 甚至更小资源的服务器上启动。

 

注意:更小的可用资源意味着更差的性能和节点稳定性,甚至节点启动失败。

 

实际生产中,更大的内存意味着更高的数据处理能力,更多的 CPU 核数可以支持更多的内部线程,但是无可避免的,更多的资源也意味着更高的系统开销。一般情况,内存和 CPU 的配

比大致为 1:2 到 1:4 用以支持绝大部分数据存取、聚合等操作的使用,但是实际的内存、CPU的用量和配比还需要用真实数据模拟真实生产环境的压测结果为准

 

一般的内存、CPU 配置策略大致为以下几种

 

l master 节点需要适当大小的内存

l coordination 节点需要较大的内存和 CPU

l ingest 节点需要较大的 CPU

l data 节点需要较大的内存和硬盘

 

实际生产中,需要通过压测来确定最佳的内存、CPU 配比,一般情况服务器的内存除了系统占用的固定内存之外,会建议设置为服务器可用内存的一半。

 

除了 ES 实例之外,ES 所维护的 Lucene 也是 Java 库,也需要占用相应的内存。此时,ES的最大/小堆栈内存建议不超过 31G,否则会因为指针压缩的原因白白浪费内存资源,甚至可能出现数据存取更慢的问题。如果目标服务器的可用内存超过 64G 的话,可以考虑通过端口的配置部署多个 ES 实例。

 

磁盘

 

l 没做特殊配置的话,ES 会在写入及不断的查询过程中,将数据集中存在最新修改和召回的数据缓存在节点/集群的各级内存(缓存)中。同时将绝大部分数据存在磁盘中的各种索引文件中,仅在内存中保留一部分索引文件的索引以加速数据的读写

l 不同于内存中的文件,ES 放置在磁盘中的文件的读写是随机的不是顺序的,所以更快的随机读写速度将使 ES 提供更快的数据存取速度。

l 在在线搜索等高频存取的场景中,更建议使用固态硬盘以支持数据的高速读写

l 在离线的日志存储等低频读取的场景中,则可以考虑用机械硬盘来节约成本

 

JDK

 

l ES 作为一个 Java 应用,也需要运行在与之相匹配的 JVM上


l 相对于低版本的 ES,高版本的 ES 部署包会自带 JDK,所以只需要保证部署 ES 的系统可以支持对应的 JDK 就好

l 目前 ES 7.10 所对应的 JDK 是 JDK11 至 15,所以部署的系统只要能支持 JDK11 以上的 JDK 版本都可以用来做部署

l ES 的部署建议尽量使用 ES 自带的 OpenJDK,因为 Elastic 团队会在每个版本中对对应的 OpenJDK 版本进行适配和调教,贸然使用其他版本的 JDK 可能会带来不可预见的问题

 

实际系统配置

 

修改源并安装必要工具

 

sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
        -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
        -i.bak \
        /etc/yum.repos.d/CentOS-Base.repo &&  \
        yum makecache && \
        yum update -y && \
        yum install -y epel-release && \
        yum install -y curl wget htop unzip && \
        yum install -y docker docker-compose


开启 docker 服务

 

l systemctl start docker

l systemctl enable docker

 

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


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
7天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
111 64
|
8天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
68 24
|
9天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
61 24
|
8天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
96 11
|
1月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1414 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
17天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
157 77
|
25天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
16 4
|
19天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
60 3
|
25天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
66 7

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版