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: "*"
相关推荐
培培说证20 小时前
2026 中专大数据技术专业考证书门槛低的有哪些?
大数据
小北方城市网20 小时前
第1课:架构设计核心认知|从0建立架构思维(架构系列入门课)
大数据·网络·数据结构·python·架构·数据库架构
收获不止数据库21 小时前
黄仁勋2026CES演讲复盘:旧世界,裂开了!
大数据·数据库·人工智能·职场和发展
老胡全房源系统21 小时前
房产中介管理系统哪一款性价比高
大数据·人工智能·房产经纪人培训
黄焖鸡能干四碗21 小时前
信息安全网络安全评估报告(WORD)
大数据·网络·人工智能·安全·web安全·制造·需求分析
汤姆yu21 小时前
基于python大数据的协同过滤音乐推荐系统
大数据·开发语言·python
Data_agent21 小时前
Cssbuy 模式淘宝 / 1688 代购系统南美市场搭建指南
大数据·python
川西胖墩墩21 小时前
团队协作泳道图制作工具 PC中文免费
大数据·论文阅读·人工智能·架构·流程图
TOPGUS21 小时前
黑帽GEO手法揭秘:AI搜索阴影下的新型搜索劫持与风险
人工智能·搜索引擎·chatgpt·aigc·谷歌·数字营销
云启数智YQ1 天前
企业进行大数据迁移的注意事项有些什么?
大数据·大文件传输·跨国文件传输·内外网文件传输·大文件传输软件