es集群的安装配置

2023-11-17

1. 集群的部署步骤

集群状态颜色:
绿色:所有条件都满足,数据完整,副本满足
黄色:数据完整,副本不满足
红色:有索引里的数据出现不完整了
紫色:有分片正在同步中

192.168.80.90 sjk1
192.168.80.91 sjk2
192.168.80.92 sjk3
1.安装软件
yum install -y java-1.8.0-openjdk.x86_64 
rpm -ivh elasticsearch-6.6.0.rpm

2.修改配置文件
node-1配置文件
cat /etc/elasticsearch/elasticsearch.yml 
cluster.name: linux
node.name: node-2
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.80.90,127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.91"]
discovery.zen.minimum_master_nodes: 2

node-2配置文件
cat /etc/elasticsearch/elasticsearch.yml 
cluster.name: linux
node.name: node-2
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.80.91,127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.91"]
discovery.zen.minimum_master_nodes: 2

node-3配置文件
cat /etc/elasticsearch/elasticsearch.yml 
cluster.name: linux
node.name: node-3
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.80.92,127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.80.90", "192.168.80.92"]
discovery.zen.minimum_master_nodes: 2

锁定内存的更改
vim jvm.options
-Xms512m
-Xmx512m
默认是1g根据自己的内存大小进行更改

3.修改内存锁定
systemctl edit elasticsearch
添加
[Service]
LimitMEMLOCK=infinity

4.创建数据目录并授权
mkdir /data/elasticsearch
chown -R elasticsearch:elasticsearch /data/elasticsearch/

5.重启服务
systemctl daemon-reload
systemctl start elasticsearch

6.查看日志和端口
tail -f /var/log/elasticsearch/Linux.log
netstat -lntup:grep 9200

配置文件
elasticsearch.yml

cluster.name: Linux						集群名称,同一个集群内所有节点集群名称要一模一样
node.name: node-1						节点名称,同一个集群内所有节点的节点名称不能重复
path.data: /data/elasticsearch			数据目录
path.logs: /var/log/elasticsearch		日志目录
bootstrap.memory_lock: true				内存锁定
network.host: 10.0.0.51,127.0.0.1		绑定监听地址
http.port: 9200							默认端口号
discovery.zen.ping.unicast.hosts: ["10.0.0.51", "10.0.0.52"]	集群发现节点配置
discovery.zen.minimum_master_nodes: 2	选项相关参数,有公式 master/2 +1 

说明:

cluster.name: Linux 同一个集群里边,这个名字一样
node.name: node-1 不同节点的名字不一样
bootstrap.memory_lock: true 内存锁定,我也不知道为什么,我2g内存不用配置,1g的配置错误
discovery.zen.ping.unicast.hosts: [“10.0.0.51”, “10.0.0.52”] 该地址,前边写主节点的,后边的紫萼自己主机的就行
discovery.zen.minimum_master_nodes: 2 当只有两台的时候一台挂了,另一台不会立即的变为主机,加入出现故障,只启动一台机器,就把参数设置为1

在这里插入图片描述
主节点是node-2他这个是先发现谁就是谁

2.集群的应用

默认情况下:
1.所有节点都是工作节点
2.主节点即负责调度又负责处理数据

2.1 操作指令:

查看集群的名称
curl -XGET 'http://localhost:9200/_nodes/procese?human&pretty'  

所有节点的信息
curl -XGET 'http://localhost:9200/_nodes/_all/info/jvm,process?human&pretty'

查看有哪些节点
curl -XGET 'http://localhost:9200/_cat/nodes?human&pretty' 

详细的分片信息
curl -XGET 'http://localhost:9200/_cluster/health?pretty'


查看索引
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
2个节点,master设置为2的时候,一台出现故障导致集群不可用
解决方案:
把还存活的节点的配置文件集群选举相关的选项注释掉或者改成1
discovery.zen.minimum_master_nodes: 1
重启服务
两个节点数据不一致会导致查询结果不一致
找出不一致的数据,清空一个节点,以另一个节点的数据为准
然后手动插入修改后的数据

2.2 数据插入:

curl -XPUT  'localhost:9200/linux/user/2?pretty' -H 'Content-Type: application/json' -d' {
	"first_name": "Jane",
	"last_name" : "Smith",
	"age" : 32,
	"about" : "I like to collect rock albums", "interests": [ "music" ]
}'

curl –XPUT  'localhost:9200/linux/user/3?pretty' -H 'Content-Type: application/json' -d' {
	"first_name": "Douglas", "last_name" : "Fir",
	"age" : 35,
	"about": "I like to build cabinets", "interests": [ "forestry" ]
}'

默认数据分配:
5分片
1副本
在这里插入图片描述

监控状态
1.监控集群健康状态 不是 green
or
2.监控集群节点数量 不是 3

curl  -s -XGET 'http://localhost:9200/_cat/nodes?human&pretty'|wc -l

curl -s  -XGET 'http://localhost:9200/_cluster/health?pretty' |grep status

我们停止一个节点试一试
在这里插入图片描述
需要一定的反应时间
在这里插入图片描述
变成两个节点了,这个时候一个损坏了,我们就可以重新启用另外一个再搭建,启用主要数据的哪一个,更改参数为1

discovery.zen.minimum_master_nodes: 1

2.3 指定分片和副本数目

curl -XPUT 'localhost:9200/index1?pretty'

创建索引的时候指定分片和副本
curl -XPUT 'localhost:9200/index2?pretty' -H 'Content-Type: application/json' -d'       
{
   "settings" : { 
   "number_of_shards" : 3, 
   "number_of_replicas" : 1
 } 
}'

分片数一旦创建就不能再更改了,但是我们可以调整副本数
curl -XPUT 'localhost:9200/index2/_settings?pretty' -H 'Content-Type: application/json' -d'         
{
  "settings" : { 
  "number_of_replicas" : 2
 } 
}'

在这里插入图片描述

2.4 分词器:

中文分词器:
所有节点都得安装中文分词器

curl -XPOST http://localhost:9200/index/fulltext/1 -H 'Content-Type:application/json' -d'
{"content":"是个烂摊子吗"}
'
curl -XPOST http://localhost:9200/index/fulltext/2 -H 'Content-Type:application/json' -d'
{"content":"车将享最高路权"}
'
curl -XPOST http://localhost:9200/index/fulltext/3 -H 'Content-Type:application/json' -d'
{"content":"渔船"}
'
curl -XPOST http://localhost:9200/index/fulltext/4 -H 'Content-Type:application/json' -d'
{"content":"自"}
'

curl -XPOST http://localhost:9200/index/fulltext/_search?pretty  -H 'Content-Type:application/json' -d'
{
    "query" : { "match" : { "content" : "国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}
'


创建索引的时候指定分词器
curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d'
{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word"
            }
        }
 
}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

es集群的安装配置 的相关文章

  • MYSql 前 10 名及其他总计

    我的查询运行良好 但我只需要前 10 个供应商 然后我需要将所有剩余的总计放在 所有其他 行中 如果没有单独的查询 我该如何做到这一点LIMIT 10 18446744073709551615 SELECT VENDOR fullname
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • MySql 从另一个表中减去一个表

    我有两个表 A 包含所有数据 表 B 从 A 中随机选择 25 的数据创建 所以 A 和 B 具有完全相同的列 也没有独特的列 我想做的是从 A 中减去 B 有什么想法吗 查看所有行A除了那些在B SELECT FROM A WHERE f
  • 消除 JPA 标准中子查询产生的冗余连接

    我只需要使用 JPA 标准执行以下 MySQL 查询 获取状态列表 来自state table 基于给定的国家名称 在country SELECT state id state name country id FROM state tabl
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • 将此 MySQL 查询转换为 PyGreSQL

    我正在开发一个 Ruby 应用程序 它使用 mysql 函数 XOR 和 BIT COUNT 不过 我现在需要在运行 PyGreSQL 的 Heroku 上运行该应用程序 我找不到任何可以帮助我的 PyGreSQL 文档 那么任何人都可以翻
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • Cucumber DataTable 错误 - io.cucumber.datatable.UndefinedDataTableTypeException:无法将 DataTable 转换为 cucumber.api.DataTable

    尝试使用 cucumber selenium java intelliJ 运行场景 但在其中一个步骤中出现有关 DataTable 的错误 在我开始使用测试运行程序并更改周围的一些内容之前 数据表工作正常并正确转换该步骤的参数 但我就是无法
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • MySQL:空间查询查找纬度/经度点是否位于给定边界内

    我正在研究谷歌地图搜索功能 其目的是找出 地理位置 点是否位于多边形内 如下图所示 我使用带有 Spatial 扩展的 mysql 5 6 20 我知道它内置有用的几何函数 因此我可以直接从数据库查询地理编码位置 我的目的是熟悉地理空间函数
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • 有没有办法只安装mysql客户端(Linux)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有不需要安装整个mysql db安装包的Linux mysql命令行工具 我想做的是从服务器 1 应用程序服务器 执行将在服务器 2
  • 如何在 MySQL 中创建查询以根据日期和独特字段减去连续行?

    基于SQL根据日期和另一列减去两行 https stackoverflow com questions 12310221 sql subtract two rows based on date and another column我有一个好
  • Java 中处理异步响应的设计模式

    我读过类似问答的答案 如何在 JAVA 中创建异步 HTTP 请求 https stackoverflow com questions 3142915 how do you create an asynchronous http reque
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • CXF:通过 SOAP 发送对象时如何排除某些属性?

    我使用 Apache CXF 2 4 2 当我将数据库中的某个对象返回给用户时 我想排除一些属性 例如密码 我怎样才能做到这一点无需创建临时的班级 有这方面的注释吗 根据 tomasz nurkiewicz 评论我应该使用 XmlTrans
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • 如何使用注释处理 Hibernate 和 Spring 中的连接查询?

    我正在使用 Spring 和 Hibernate 以及 MySQL 开发应用程序 我是 Hibernate 新手 完成了基本任务 现在我需要在选择查询中应用联接以使用注释从多个表中获取数据 我已经搜索过但仍然没有任何想法 这是我的数据库表和
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外

随机推荐

  • 什么是 JSONP?

    前言 首先我们得先了解JSONP是怎么产生的 最开始跨域请求数据没有现在方便 Ajax直接请求普通文件存在跨域无权限访问的问题 然后聪明的程序员想出了一套非官方的解决办法 程序员发现凡是带有 src 这个属性的标签都拥有跨域的能力 比如 l
  • 自媒体创作审核不通过怎么办?教你一个小技巧,提高效率

    自媒体人是不是会遇到平台审核内容不通过的时候 遇到这个问题你是怎么解决的呢 是不是修改内容提交还是不通过 今天 教你一个小技巧 快速解决内容审核不通过的问题 提高发稿效率 很多自媒体新手不知道稿件还能不能进行质量检测 所以 有时候写的自媒体
  • [深入研究4G/5G/6G专题-24]: 5G NR开机流程4.2 - 随机接入应答消息MSG2的调度过程与上行同步、时间提前量TA通过PDSCH信道下发

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 前置条件 第1章 随机接入知识准备
  • UNIAPP中文字上下左右居中

    效果 index vue
  • Flutter drawer侧滑栏实现

    侧滑栏对于大部分App来说都是经常用到的 接下来我们来一步步的实现flutter的侧滑栏效果 这里需要使用flutter提供的 Drawer和DrawerHeader控件 DrawerHeader通常用作侧滑栏的头部控件 比如用户头像等 D
  • Vulnhub之Me-and-My-Girlfriend

    Vulnhub是一个很好的靶机平台 想看官网点这里 今天学习Me and My Girlfriend 点击这里下载哦 这个比较简单 入门学习 VMware和VirtualBox都可以导入 成功后如图 这里修改连接为NAT模式 然后就开始玩耍
  • Mybatis使用datetimepicker日期和时间插件查询时间范围

    使用说明 collectStartDate和setStartDate类型为Date 对应的创建时间在mysql中为varchar类型 一 下载和引入datetimepicker样式和js 二 页面代码 li li
  • ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 已解决

    今天用Navicat Premium 连接 Oracle时报错了 报错信息 ORA 12514 TNS listener does not currently know of service requested in connect des
  • linux压缩文件夹命令 tar_每天一个Linux系统命令|tar

    名称 tar命令是Linux系统下最常用的打包命令 它不但可以对文件或者文件夹打包 还可以打包的时候同时压缩文件 用法描述 tar 选项 目标文件 源文件 压缩 tar 选项 压缩文件 解压 选项描述 如下是该命令的一些选项 按照使用频率进
  • 从零开始开发自己的类keras深度学习框架7:简易版word2vec

    认真学习 佛系更博 前面几章基本介绍了全连接神经网络和卷积神经网络的原理已经开发过程 本章开始将写一些自然语言处理相关的知识 当然 自然处理领域的知识点比图像处理的要复杂 抽象 可能要花更多时间来研究 首先 我们来了解一下word2vec
  • 基于协同过滤推荐+余弦相似度算法实现新闻推荐系统

    针对海量的新闻资讯数据 如何快速的根据用户的检索需要 完成符合用户阅读需求的新闻资讯推荐 本篇文章主要采用余弦相似度及基于用户协同过滤算法实现新闻推荐 通过余弦相似度算法完成针对不同新闻数据之间的相似性计算 实现分类标签 通过协同过滤算法发
  • CLIP视觉编码器

    VisionTransformer conv1 Conv2d 3 768 kernel size 16 16 stride 16 16 bias False ln pre LayerNorm 768 eps 1e 05 elementwis
  • 使用docker在基础镜像上集成tomcat

    当我们对基础镜像版本和tomcat版本有要求时 可以尝试自己集成所需的镜像 不必每次都去拉取其他人提供的镜像 然后在此基础镜像上部署自己的应用 目标版本 基础镜像版本 ubuntu 16 04 JDK版本 jdk1 8 0 191 tomc
  • gitlab-建代码仓库

    一 生成 添加SSH公钥 你可以按如下命令来生成 sshkey ssh keygen t ed25519 C xxxxx xxxxx com 这里的 xxxxx xxxxx com 只是生成的 sshkey 的名称 并不约束或要求具体命名为
  • dwr反转ajax功能,dwr实现Reverse Ajax推送技术的三种方式

    DWR2 x的推技术也叫DWR Reverse Ajax 逆向Ajax 主要是在BS架构中 从服务器端向多个浏览器主动推数据的一种技术 在DWR所开的线程中使用Reverse Ajax时 经过WebContextFactory get 获取
  • GD32 CAN波特率计算问题

    一 问题描述 以下是GD32F205 CAN0的配置代码 将CAN0的波特率设置为125kbps 其中影响波特率的几个关键参数为resync jump width time segment 1 time segment 2和prescale
  • 关于TagsView的一些记录

    参考TagsView原链接https blog csdn net Dream xun article details 83146106 开发项目时 使用基础tagsView遇到的问题 代码基本上与原链接一致 仅有一些基础功能 本人开发项目为
  • git哪些你不太理解的术语

    Repository 简称Repo 可以理解为 仓库 我们的项目就存放在仓库之中 也就是说 如果我们想要建立项目 就得先建立仓库 有多个项目 就建立多个仓库 Issues 可以理解为 问题 举一个简单的例子 如果我们开源一个项目 如果别人看
  • Linux高级命令06:文件权限命令

    学习目标 能够使用chmod命令完成文件权限的修改 1 chmod命令的介绍 命令 说明 chmod 修改文件权限 chmod修改文件权限有两种方式 字母法 数字法 2 chmod 字母法的使用 角色说明 角色 说明 u user 表示该文
  • es集群的安装配置

    es集群的安装配置 1 集群的部署步骤 2 集群的应用 2 1 操作指令 2 2 数据插入 2 3 指定分片和副本数目 2 4 分词器 1 集群的部署步骤 集群状态颜色 绿色 所有条件都满足 数据完整 副本满足 黄色 数据完整 副本不满足