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集群的安装配置 的相关文章

  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 什么是 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 集群的部署步骤 集群状态颜色 绿色 所有条件都满足 数据完整 副本满足 黄色 数据完整 副本不满足