一、Elasticsearch基础概念及ES8集群安装

基础概念及es8集群安装

文档汇总

  1. 点击查看官方文档汇总
  2. 点击查看Elasticsearch Clients文档,如JAVA客户端文档
  3. 点击查看REST APIs文档
  4. 点击查看Elasticsearch配置项文档

基础概念

  1. 集群cluster
    一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是"elasticsearch"。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群
  2. 节点node
    一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。
    一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做"elasticsearch"的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做"elasticsearch"的集群中。
    在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点。这时启动一个节点,会默认创建并加入一个叫做elasticsearch的集群。
  3. 结构
    请添加图片描述

下载及官方文档

官方github点击下载对应所需ES版本zip压缩包

📌任意不懂内容可以直接在ES官网搜索就能找到对应文档,比如
搜索cluster.initial_master_nodes,就可以找到此配置相关内容

安装es8

  1. 解压对应安装包elasticsearch-8.x.x-zip,先启动初始化一下es,
    执行bin目录下的elasticsearch.bat

    初始化完成后,保存初始化完获取的信息后面需要用到

    -> Elasticsearch security features have been automatically configured!
    -> Authentication is enabled and cluster connections are encrypted.
    
    ->  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
      3maAuxJjHdgoSTgaH9+S
    
    ->  HTTP CA certificate SHA-256 fingerprint:
      e7818ec3032eacef7dc911d97ca5998c5058987a44aecee3a6d128bed8e1315f
    
    ->  Configure Kibana to use this cluster:
    * Run Kibana and click the configuration link in the terminal when Kibana starts.
    * Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
      eyJ2ZXIiOiI4LjQuMSIsImFkciI6WyIxOTIuMTY4LjUwLjE0Njo5MjAwIl0sImZnciI6ImU3ODE4ZWMzMDMyZWFjZWY3ZGM5MTFkOTdjYTU5OThjNTA1ODk4N2E0NGFlY2VlM2E2ZDEyOGJlZDhlMTMxNWYiLCJrZXkiOiItWm43em9ZQjIxWndudC0weXpRQjpCbjZjblpfV1NreVR0bHlRckQyR0FBIn0=
    
    ->  Configure other nodes to join this cluster:
    * On this node:
      - Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
      - Uncomment the transport.host setting at the end of config/elasticsearch.yml.
      - Restart Elasticsearch.
    * On other nodes:
      - Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
    --------
    
    
  2. 暂不关闭服务,修改一下elastic的随机密码,方便后面测试

    bin/elasticsearch-reset-password -u elastic –i 修改为123456,修改后关闭服务

  3. 安装下载IK分词器拓展,需要注意版本和ES版本对应下载及官方文档

    将分词器zip安装包右键解压到es安装目录下的plugins目录即可,如xx/plugins/elasticsearch-analysis-ik-8.x.x

    可替代的中文分词包括HanLP分词

  4. 修改es的jvm内存配置,因为是在本机测试,到时会有多个服务启动,将内存配置改小,找到es安装目录下的config/jvm.options,添加或者修改以下配置项

    -Xms256m
    -Xmx256m
    
  5. 修改es的配置文件,找到es安装目录下的/config/elasticsearch.yml,修改或新增以下内容

    xpack.security.enabled: true
    xpack.security.enrollment.enabled: true
    
    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/http.p12
    
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: certs/transport.p12
      truststore.path: certs/transport.p12
    
    http.host: 0.0.0.0
    http.port: 9201
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ingest.geoip.downloader.enabled: false
    cluster.name: my-es
    node.name: node-1
    node.roles: [master,data]
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    network.host: 127.0.0.1
    transport.port: 9301
    discovery.seed_hosts: ["127.0.0.1:9302","127.0.0.1:9303"]
    
    

    注意查看原文件是否已有重复配置项,配置重复项启动服务时会闪退

    xpack.security相关配置是开启es的https证书安全认证

    http.host配置允许访问的主机,0.0.0.0表示可以被任意远程主机访问

    http.port当前节点提供对外HTTP访问的端口

    http.cors相关配置开启跨域访问,配置es-head图形化界面

    ingest.geoip.downloader.enabled表示是否启用geoip数据库的相关更新,否则启动时更新会有geoip相关报错,设置false重新启动后会自动删除.geoip_databases索引

    cluster.name表示配置集群名称,一个节点只有在与集群中的所有其他节点有相同的cluster.name时才能加入集群

    node.name表示当前节点名称

    node.roles表示当前节点允许充当的角色,master即有机会选举为主节点,data可充当数据操作节点,如CRUD、搜索和聚合

    cluster.initial_master_nodes表示一个集群中符合主节点条件的节点初始集合

    discovery.seed_hosts表示集群中符合条件的主节点地址列表。每个地址的格式都是host:port或host。如果没有给出端口,则通过按顺序检查以下设置来确定

    1. transport.profiles.default.port
    2. transport.port
      如果这两项都未设置,则默认端口为9300
      network.host设置此节点HTTP和数据传输的地址。节点将绑定到此地址,并将其用作发布地址,可以是IP地址、主机名或特殊值1,默认为local

    transport.port节点间的数据传输使用端口

📌更多配置项可以在官方文档中查看点击查看Elasticsearch配置项文档

  1. 此时es的单个节点配置已完成,将安装文件夹修改为cluster-node1,将cluster-node1复制出来两份,分别重命名为cluster-node2、cluster-node3,同时分别清空cluster-node2、cluster-node3下的logs夹内容,删除整个data文件夹,cluster-node1不需要进行上述操作

  2. 复制cluster-node1的配置文件,YAML 代码块,同样注意不要重复配置

    1. cluster-node2的配置文件修改为以下内容
    xpack.security.enabled: true
    xpack.security.enrollment.enabled: true
    
    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/http.p12
    
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: certs/transport.p12
      truststore.path: certs/transport.p12
    
    http.host: 0.0.0.0
    http.port: 9202
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ingest.geoip.downloader.enabled: false
    cluster.name: my-es
    node.name: node-2
    node.roles: [master,data]
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    network.host: 127.0.0.1
    transport.port: 9302
    discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9303"]
    

    b. cluster-node3的配置文件修改为以下内容

    xpack.security.enabled: true
    xpack.security.enrollment.enabled: true
    
    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/http.p12
    
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: certs/transport.p12
      truststore.path: certs/transport.p12
    
    http.host: 0.0.0.0
    http.port: 9203
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ingest.geoip.downloader.enabled: false
    cluster.name: my-es
    node.name: node-3
    node.roles: [master,data]
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    network.host: 127.0.0.1
    transport.port: 9303
    discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302"]
    
  3. 以此启动三个节点,cluster-node1、cluster-node2、cluster-node3

    bin/elasticsearch.bat

    三个节点访问地址,任意一个浏览器访问,登录elastice/123456即可正常访问

    cluster-node1:https://127.0.0.1:9201

    cluster-node2:https://127.0.0.1:9202

    cluster-node3:https://127.0.0.1:9203

    到此es8集群安装结束


安装es-head图形化管理插件

  1. 下载es-head扩展包
  2. 安装到谷歌浏览器的扩展程序,步骤如下
    a. 将下载的压缩包解压,得到crx文件
    b. 将.crx修改为.zip,然后解压缩,将解压得到的多个文件(文件夹)移动至新文件夹;
    c. 在浏览器扩展页面选择“加载解压缩的扩展”,找到上面解压的目录文件夹,选中确认即可完成安装。
    文件夹不可删除,否则将导致插件不可用
  3. 浏览器点击es-head插件,打开管理页面,配置任意一个节点地址,输入密码,即可正常加载管理页面

在这里插入图片描述

如果点击"连接"没反应,先复制地址到浏览器访问一下,再回到当前页面继续连接

  1. 测试新建一个索引,如图

在这里插入图片描述

效果和前面结构分析一致,不同的分片分散在不同的节点
在这里插入图片描述

黑色加粗的为主分片,浅色黑边对应的是副本


  1. local
    系统上的任何环回地址,例如127.0.0.1
    site
    系统上的任何站点本地地址,例如192.168.0.1。
    global
    系统上任何全局范围的地址,例如8.8.8.8。
    [networkInterface]
    使用名为[networkInterface]的网络接口的地址。例如,如果您希望使用名为en0的接口的地址,则设置network.host:en0
    0.0.0.0
    所有可用网络接口的地址。在一些系统中,这些特殊值解析为多个地址。如果是这样,Elasticsearch将选择其中一个作为其发布地址,并可能在每次节点重新启动时更改其选择。确保每个可能的地址都可以访问您的节点。注意:任何包含:的值(例如IPv6地址或某些特殊值)都必须引用"",因为:是YAML中的一个特殊字符。 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要安装一个ES8集群,您可以使用Docker来部署,以下是一些简单的步骤: 1. 首先,确保您已经在系统上安装了Docker和Docker Compose。您可以通过运行以下命令来检查它们是否已安装: ``` docker --version docker-compose --version ``` 如果命令成功执行并显示版本信息,则说明Docker和Docker Compose已经安装好了。 2. 创建一个用于存储ES数据的目录,在您的系统上选择一个适当的位置,例如`/path/to/es-data`。执行以下命令创建该目录: ``` mkdir /path/to/es-data ``` 3. 创建一个名为`docker-compose.yml`的文件,并在其中定义ES服务的配置。以下是一个示例配置: ```yaml version: '3' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0 container_name: es01 environment: - discovery.type=single-node volumes: - /path/to/es-data:/usr/share/elasticsearch/data ports: - 9200:9200 - 9300:9300 ``` 上述配置将创建一个名为`es01`的容器,使用Elasticsearch 8.0.0镜像,并将端口9200和9300映射到主机上。 4. 保存并关闭`docker-compose.yml`文件后,在终端中导航到包含该文件的目录,并执行以下命令启动ES集群: ``` docker-compose up -d ``` 上述命令将启动ES容器,并在后台运行。 5. 等待一段时间,直到容器启动并完成初始化。您可以使用以下命令检查容器状态: ``` docker ps ``` 如果看到`es01`容器正在运行,则说明ES集群已经成功安装和运行。 这样,您就已经成功地使用Docker安装了一个ES8集群。请注意,这只是一个简单的示例配置,您可能需要根据自己的需求进行调整和扩展。如果您需要部署更复杂的ES集群,建议阅读Elasticsearch官方文档以获取更多详细信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值