Elasticsearch 环境

相关概念

单机 & 集群

单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。

除了负载能力,单点服务器也存在其他问题:

  • 单台机器存储容量有限
  • 单服务器容易出现单点故障,无法实现高可用
  • 单服务的并发处理能力有限

配置服务器集群时,集群中节点数量没有限制,大于等于2个节点就可以看做是集群了。-般出于高性能及高可用方面来考虑集群中节点数量都是3个以上。

集群 Cluster

一个集群就是由一个或多个服务器节点组织在一起,共同持有整个的数据,并一起提供索引和搜索功能。一个Elasticsearch 集群有一个唯一的名字标识,这个名字默认就是"elasticsearch"。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入集群。

节点 Node

集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能

一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于 Elasticsearch 集群中的哪些节点。

一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做"elasticsearch"的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做"elasticsearch"的集群中。

Windows集群部署

修改config/elasticsearch.yml

复制代码
#集群名称,唯一,节点之间要保持一致
cluster.name: my-application
#节点名称,,集群内唯一
node.name: node-9201
#是否可以为master节点
node.master: true
#是否可以为data节点
node.data: true
#节点ip
network.host: localhost
#端口
http.port: 9201
#tcp通信端口
transport.tcp.port: 9303
# 配置节点之间的通信端口
discovery.seed_hosts: ["localhost:9301","localhost:9302","localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# 跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

依次启动节点查询集群状态

复制代码
GET:http://127.0.0.1:9201/_cluster/health

Linux单节点部署

本文使用docker进行部署

  1. 拉取镜像

    复制代码
    docker pull  docker.elastic.co/elasticsearch/elasticsearch:7.8.0
  2. 创建/es/data,/es/plugins路径并给权限

    复制代码
    mkdir /opt/es/data /opt/es/plugins
    #不给权限可能导致容器启动后,es无法启动
    chmod 777 /opt/es/data /opt/es/plugins
  3. 部署单点es,创建es容器

    复制代码
    docker run  -d \
    -p 9200:9200 -p 9300:9300 \
    --name es_master --privileged=true \
    -v /opt/es/data:/usr/share/elasticsearch/data \
    -v /opt/es/plugins:/usr/share/elasticsearch/plugins \
    -e "discovery.type=single-node" \
    docker.elastic.co/elasticsearch/elasticsearch:7.8.0

Linux集群部署(服务器内存限制无法部署多台es,按照配置文件修改即可)

  1. 创建/es/data,/es/plugins路径并给权限

    复制代码
    mkdir /opt/es/master
    mkdir /opt/es/node1
    mkdir /opt/es/node2
    chmod -R 777 es/
  2. 部署集群es,创建三个es容器

    复制代码
    docker run  -d \
    -p 9201:9201 -p 9301:9301 \
    --name es_master --privileged=true \
    -v /opt/es/data:/usr/share/elasticsearch/data \
    -v /opt/es/plugins:/usr/share/elasticsearch/plugins \
    -e "discovery.type=single-node" \
    docker.elastic.co/elasticsearch/elasticsearch:7.8.0
  3. 修改配置文件

    复制代码
    ## 集群名称,保证唯一
    cluster.name: my-application
    #### 节点名称,必须不一样
    node.name: es_master
    #是不是有资格成为主节点
    node.master: true
    #是否存储数据
    node.data: true
    #最大集群节点数
    node.max_local_storage_nodes: 3
    #ip地址.
    network.host: 0.0.0.0
    #端口
    http.port: 9201
    #内部节点之间沟通端口
    transport.tcp.port: 9301
    #es7.x  之后新增的配置,节点发现
    discovery.seed_hosts: ["localhost:9301","localhost:9302","localhost:9303"]
    #es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
    cluster.initial_master_nodes: ["es_master","es_node1","es_node2"]
    #跨域
    http.cors.enabled: true
    http.cors.allow-origin: "*"
相关推荐
阿里云大数据AI技术1 小时前
更快、更稳、更省:揭秘阿里云 Elasticsearch 存算分离与弹性扩缩
elasticsearch
延凡科技1 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
ifenxi爱分析2 小时前
爱分析最新报告解读:AI数据基础设施与数据中台的区别
大数据·人工智能
阿里云大数据AI技术3 小时前
Search Lake:ES x Paimon 让湖上多模态数据可搜可用
人工智能·elasticsearch·搜索引擎
品牌全球行3 小时前
共商共建共享 链接数字未来——“一带一路数字新城(深圳)会客厅筹备办”揭牌仪式在深圳隆重举行
大数据·人工智能
TlSfoward5 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记5 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LaughingZhu6 小时前
Product Hunt 每日热榜 | 2026-07-21
搜索引擎·百度
RD_daoyi6 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
ApacheSeaTunnel6 小时前
Apache SeaTunnel AI CLI Benchmark:7 款大模型、100 个 ETL 任务实测,谁真正能跑起来?
大数据·ai·开源·大模型·数据集成·cli·seatunnel·技术分享·数据同步