Elasticsearch(二)概念及安装、部署

19 篇文章 2 订阅
10 篇文章 0 订阅

跟部署有关的几个名词先介绍一下:

node节点是一个es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同;一般一个机器只部署一个
cluster代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。一般较大的集群中,一个节点不同时作为主节点和数据节点
shards因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分, 而这些分布在不同节点的数据就是分片. ES自动管理和组织分片, 并在必要的时候对分片数据进行再平衡分配, 所以用户基本上不用担心分片的处理细节.分片会造成冗余,但是提高了可用性
replicasES默认为一个索引创建5个主分片, 并分别为其创建一个副本分片. 也就是说每个索引都由5个主分片成本, 而每个主分片都相应的有一个copy.

我们来看一个es集群的部署结构:

 我们可以安装head插件来查看es的分片状况以及其他信息:

es-head插件查看es系统概览_u013761206的专栏-CSDN博客

根数据更像个的,有几个名词,有参照比较好理解,选择mysql的结构来进行对比:

ElasticsearchMySQL
索引库(indices)Database 数据库
indices是index的复数,代表许多的索引
类型(type)Table 数据表
类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引(目前6.X以后的版本只能有一个类型),类似数据库中的表概念。数据库表中有表结构,也就是表中每个字段的约束信息;索引库的类型中对应表结构的叫做映射(mapping),用来定义每个字段的约束。
文档(Document)Row 行
存入索引库原始的数据。比如每一条商品信息,就是一个文档
域字段(Field)Columns 列
文档中的属性
映射配置(mappings)每个列的约束(类型、长度)字段的数据类型、属性、是否索引、是否存储等特性

一:下载安装es

参考:elasticsearch 6.8安装 - 柴米油盐酱醋 - 博客园

值得注意的是mater和node的比例是比较重要的:

  • ES集群节点可以划分为三种:主节点、数据节点和客户端节点。

在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。默认情况下,elasticsearch 集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。这些功能是由两个属性控制的。

elasticsearch.yml :

master - 主节点: 
node.master: true
node.data: false

主要功能:维护元数据,管理集群节点状态;不负责数据写入和查询。
配置要点:内存可以相对小一些,但是机器一定要稳定,最好是独占的机器。

-------------------------------
data - 数据节点:
node.master: false
node.data: true

主要功能:负责数据的写入与查询,压力大。
配置要点:大内存,最好是独占的机器。

--------------------------------------------
client - 客户端节点:
elasticsearch.yml :
node.master: false
node.data: false
主要功能:负责任务分发和结果汇聚,分担数据节点压力。
配置要点:大内存,最好是独占的机器

--------------------------------------------
mixed- 混合节点(不建议):
node.master: true
node.data: true

主要功能:综合上述三个节点的功能。
配置要点:大内存,最好是独占的机器。
特别说明:不建议这种配置,节点容易挂掉。

其他说明

  • 虽然上面章节中,未对单个服务器的磁盘大小进行要求,但是整体ES集群的总磁盘大小要保证足够。

简单举例

假定共计20台机器,则可以按照如下配置:

节点类型机器数量内存大小其他
master316GB机器必须稳定
data1231GB
client531GB

 

二、运行 & 关闭 elasticsearch

1.运行elasticsearch :

编辑 /elasticsearch-1.7.3/bin/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致,或者可以在启动es时指定

bin/elasticsearch

若想让es后台运行,则 

bin/elasticsearch -d -Xms512m -Xmx512m


关闭elasticsearch:

前台运行:可以通过”CTRL+C”组合键来停止运行 
后台运行,可以通过”kill -9 进程号”停止.使用jps查看进程号

四、es调优

1、es禁用swap

禁止 swap,一旦允许内存与磁盘的交换,会引起致命的性能问题。可以通过在 elasticsearch.yml 中 bootstrap.memory_lock: true,以保持 JVM 锁定内存,保证 ES 的性能。

2、修改对当个进程占用内存的限制

修改/etc/security/limits.conf, 在limits.conf中添加如下内容
* soft memlock unlimited
* hard memlock unlimited

3、对应增加虚拟内存

修改elasticsearch下config目录下的jvm.options参考:

-Xms4g //默认是1g
-Xmx4g //默认是1g

ElasticSearch性能优化实践(JVM调优+ES调优) - 简书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch(简称ES)是一个开源的分布式搜索和分析引擎,它基于Apache Lucene库构建而成。它被设计用于快速、可扩展和分布式的全文检索,以及实时数据分析。ES具有强大的搜索能力和高效的分布式架构,能够处理大规模数据的存储、搜索和分析。 ES的核心概念是索引(Index)、文档(Document)和类型(Type)。索引是包含一系列文档的逻辑容器,每个文档都是一个JSON格式的数据对象,可以被索引和搜索。类型是文档的逻辑分类,用于区分不同类型的文档。ES提供了丰富的搜索功能,包括全文搜索、过滤器、聚合等,通过使用查询语言来实现灵活的搜索需求。 ES的分布式特性使得它非常适合处理大规模数据。它使用分片(Shard)和复制(Replica)机制来实现数据的分布和冗余备份,提高了系统的可用性和扩展性。每个索引可以被划分为多个分片,每个分片可以被部署在不同的节点上,从而实现数据的并行处理和负载均衡。 除了全文检索外,ES还提供了丰富的数据分析功能。它支持实时的数据聚合和可视化,可以用于实时监控、日志分析、业务指标分析等场景。ES还可以与其他工具和框架集成,如Kibana(可视化工具)、Logstash(日志收集工具)等,形成完整的日志分析和监控系统。 总而言之,Elasticsearch是一个强大的全文检索和分析引擎,具有高效的搜索能力、可扩展的分布式架构和丰富的数据分析功能。它在各种场景下都能发挥重要作用,包括企业搜索、电商商品搜索、日志分析等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值