Elasticsearch(一)---搭建

news2024/10/7 18:25:23

搭建es

不允许root用于运行

创建esuser用户:

useradd esuser

设置密码

passwd esuser

让esuser拥有sudo的权限,需要修改/etc/sudoers文件

需要先给/etc/sudoers添加写的权限

[root@node1 ~]# vim /etc/sudoers

改完之后将写权限删除

三台服务器上操作

在/opt下创建目录es,将es的所有权切换给esuser

[esuser@node1 opt]$ sudo mkdir es
[esuser@node1 opt]$ sudo chown -R esuser:esuser es

使用esuser账户将

elasticsearch-2.2.1.tar.gz

elasticsearch-analysis-ik-1.8.1.zip

elasticsearch-head-master.zip

上传到服务器的esuser家目录

解压elasticsearch-2.2.1.tar.gz到/opt

[esuser@node1 ~]$ tar -zxf elasticsearch-2.2.1.tar.gz -C /opt/es

在三台服务器上依次设置:

cluster.name: escluster
node.name: esnode-1
# 让ES在两个地址发布ES服务
network.host: ["localhost", "node2"]
discovery.zen.ping.unicast.hosts: ["node2", "node3", "node4"]
discovery.zen.minimum_master_nodes: 2     过半:N/2+1
cluster.name: escluster
node.name: esnode-3
# 让ES在两个地址发布ES服务
network.host: ["localhost", "node4"]
discovery.zen.ping.unicast.hosts: ["node2", "node3", "node4"]
discovery.zen.minimum_master_nodes: 2

安装插件

head插件

下载地址:

https://github.com/mobz/elasticsearch-head/archive/master.zip

bin/plugin  install  file:///home/esuser/elasticsearch-head-master.zip

es/bin/plugin install https://github.com/mobz/elasticsearch-head/archive/master.zip

github使用的是SSLv2

CENTOS6.5   SSLv1

[esuser@node1 ~]$ /opt/es/elasticsearch-2.2.1/bin/plugin install file:///home/esuser/elasticsearch-head-master.zip

ik中文分词器插件

注意:是esuser用户来操作

下载地址:

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.8.1/elasticsearch-analysis-ik-1.8.1.zip

如果elasticsearch/plugins不存在就创建该目录,然后执行:

unzip  elasticsearch-analysis-ik-1.8.1.zip  -d  /opt/es/elasticsearch-2.2.1/plugins/ik

在三台服务器上同步。

重启ES即可。

在/etc/profile中配置es的bin目录

ES_HOME

PATH

[esuser@node3 ~]$ sudo vim /etc/profile
export ES_HOME=/opt/es/elasticsearch-2.2.1
export PATH=$PATH:$ES_HOME/bin

前台启动

[esuser@node1 ~ ]elasticsearch

后台启动

[esuser@node1 ~ ]elasticsearch -d
[esuser@node1 ~ ]elasticsearch  -d -p mypidfile
kill -9 `cat mypidfile`

访问es:http://node2:9200

访问head插件

http://node2:9200/_plugin/head/

通过单播发现节点

elasticsearch-2.2不支持组播查找其他节点方式。

单播发现(unicast discovery)让ES连接一系列的主机,并试图发现更多关于集群的信息。使用单播时,我们告诉ES集群中其他节点的IP地址以及端口或端口范围。如下配置:

discovery.zen.ping.unicast.hosts:  [“10.0.0.3”, “10.0.0.4:9300”, “10.0.0.5[9300-9400]”]

并非所有的ES集群节点需要出现在单播列表中来发现全部的节点,但是必须为每个节点配置足够的地址,让其认识可用的“口碑传播”节点。例如,如果单播列表中的第一个节点认识7个集群节点中的3个,而单播列表中的第二个节点认识7个节点中的其他4个,那么该节点执行发现操作后就能找到集群中全部7个节点。在发现集群中的部分节点后,ES节点将进行主节点选举。

一旦集群中的节点发现了彼此,会协商谁将成为主节点。

主节点负责管理集群状态,即当前的设置和集群中分片、索引以及节点的状态。

在主节点被选举出来之后,会建立内部的ping机制来确保每个节点在集群中保持活跃和健康,称为错误识别(fault detection)。

所有的节点都有资格成为主节点,除非某个节点的node.master选项设置为false。

当集群中只有一个节点时,该节点先等一段时间,如果没有发现其他任何集群的节点,就将自己选为主节点。

设置主节点的最小数量,可以控制ES在成为健康集群之前,集群中多少个节点有资格成为主节点。

如果节点数量不会随着时间变化,可以将最小数量设置为集群总结点数,一般设置为集群数量的一半+1,也就是N/2+1。通过过半机制防止脑裂。

设置elasticsearch.yml中的

discovery.zen.minimum_master_nodes=N/2+1

可以使用如下的命令确认集群的状态以及哪个是主节点:

$ curl 'localhost:9200/_cluster/state/master_node,nodes?pretty'
{
  "cluster_name" : "escluster-1",
  "master_node" : "1pF4neAtSDWjyn9tsYOfGg",
  "nodes" : {
    "DqjdrX-1QSuVkDOj20xarQ" : {
      "name" : "esnode-1",
      "transport_address" : "192.168.202.101:9300",
      "attributes" : { }
    },
    "nSBWfYeARL6YkBe7er0FZg" : {
      "name" : "esnode-3",
      "transport_address" : "192.168.202.103:9300",
      "attributes" : { }
    },
    "1pF4neAtSDWjyn9tsYOfGg" : {
      "name" : "esnode-2",
      "transport_address" : "192.168.202.102:9300",
      "attributes" : { }
    }
  }
}

错误识别:

主节点ping集群中所有其他的节点,而且每个节点也会ping主节点来确认无需选举。

每个节点每隔discovery.zen.fd.ping_interval(默认是1s)发送一个ping请求,等待discovery.zen.fd.ping_timeout(默认是30s)的时间,并尝试最多discovery.zen.fd.ping_retries(默认3)次,如果ping不通,则宣布节点失联,并在需要的时候进行新的分片路由和主节点选举。

一旦一个节点ping不通,节点连不上,ES做的第一件事是自动地将剩下节点中的副本分片升为主分片,因为索引操作会首先更新主分片。

副本分片变为主分片之后,集群就会变为黄色的状态,表明有副本分片没有分配到某个节点。ES下一步需要创建更多的副本分片来保持索引的高可用。

一旦副本分片重新创建,并用于弥补损失的节点,集群将重回绿色状态,全部的主分片和其副本分片都分配到了某个节点。在这段时间之内由于没有数据丢失,整个集群都可用于搜索和索引。如果有丢失的数据,则集群状态转为红色。可以使用多个副本增强抗风险能力。

每个可以成为master的节点都会保有一个集群状态版本号

每个可以成为master的节点都有一个id

选取集群状态版本号高的作为master,如果版本号都一样,则选取id最小的节点成为主节点master。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1150247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“阿里巴巴按关键字搜索接口:一键获取海量商品信息,助力商家抢占市场先机!“

阿里巴巴按关键字搜索商品的接口是通过开放平台提供的API接口来实现的。要使用这个接口,需要进行以下步骤: 确认API接口的请求地址和所需参数:需要先查看API文档,了解所要访问的API接口的请求地址和请求参数,以便正确…

python随手小练13

题目1: 定义学员信息类,包含姓名、成绩属性,定义成绩打印方法 (90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格) 具体操作: cl…

基于pyqt5和yolov8的智慧工地施工人工安全检测系统

基于pyqt5和yolov8的智慧工地施工人工安全检测系统 主要基于两者进行集成 在前面模型训练基础上,实现安全马甲、安全面具和安全帽的检测。 核心检测代码 def run(self):self.hilo_corriendo Truemodel YOLO("best.pt")cap cv2.VideoCapture(0)while…

安全生产管理系统助力企业安全细化管理

安全生产管理系统利用完整的安全生产管理体系,结合信息化、数字化和智能化等技术手段,将安全生产过程中的各个环节进行有效整合,使安全管理更加科学、规范和高效。 安全生产管理系统可以对企业安全生产进行全面、细致的管理。它能够实现对企…

NFTScan | 10.23~10.29 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.10.23~ 2023.10.29 NFT Hot News 01/ sudoswap 推出 NFT 做空协议 sudoshort 10 月 24 日,NFT 交易协议 sudoswap 推出 NFT 做空协议 sudoshort,是建立在 su…

C语言C位出道心法(一):基础语法

一:基础语法认知 变量与常量,数据类型认知升维 C语言中各种变量的定义及数据类型的认知: 一般而言,在譬如C等高级编程语言中,我们定义不同的类型的变量,需要不同的数据类型来进行声明,不同类型的数据类型声明的变量占用的内存空间不一样; 而数据类型大致分为两种: (1)内置的…

ORACLE运行的数据库突然连接报“无监听程序”

远程:用远程的数据库连接工具用localhost可以连接,用ip地址除127.0.0.1不可连接。 可能是日志文件满了,解决办法如下: 第一步:关闭数据库监听程序【任务管理器--》服务--》右键停止服务】 第二步:找到日志…

安防视频监控平台EasyCVR服务器需要开启firewalld防火墙,该如何开放端口?

智能视频监控/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上&…

参与国际大科学计划!DDE 深时数字地球向您发出平台使用邀请

深时数字地球(Deep-time Digital Earth,DDE)是由我国科学家主导发起并受国际学术界认可的首个大科学计划,希望通过建立一个链接地学信息的研究平台,整合地球演化数据、共享全球地学知识,同时为世界范围内的…

【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习

文章目录 前言机器学习深度学习ChatGPT推荐图书粉丝福利尾声 前言 兔子王免费赠书第4期来啦,突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能! 机器学习 机器学习是人工智能领域的一个重要分支,它的目的是让…

网络安全(黑客)—零基础自学

目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类&am…

GIS开源工具分享,Geojson格式转Topojson格式,使用TopoJSON Server工具进行Geojson转换为Topojson

前言 为什么要将 GeoJSON 转换为 TopoJSON? 因为TopoJSON会把GeoJSON中的冗余数据精简,所以相同数据TopoJSON体积比GeoJSON更小,更利于存储和传输。 Geojson介绍 GEOJSON是gis地图中常用的数据格式,制作地图时用于存储各种地理数据,使用时通过OpenLayer、Leaflet、mapL…

Java char类型介绍

前言:最近,想写一篇关于介绍产生”乱码问题“根本原因的文章,因此,查看了Java中的字符是如何存储的,即char数据类型。在此将学到的知识做一个总结。 一、char数据类型 char类型最初用于表示Unicode字符集中的一个字符…

LeetCode | 17.04.消失的数字和189.旋转数组

LeetCode | 17.04.消失的数字和189.旋转数组 文章目录 LeetCode | 17.04.消失的数字和189.旋转数组17.04.消失的数字方法一:方法二:方法三:方法二的代码方法三的代码 189.旋转数组思路一思路二思路三 17.04.消失的数字 OJ链接 这里题目要求…

②CPU - 运算器、控制器 【软考-软件设计师考点】

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ②CPU - 运算器、控制器 【软考-软件设计师考点…

基于python的app程式开发

安装的库文件: 运行代码: # -*- coding:utf-8 -*- from kivy.app import App class HelloApp(App):pass if __name__ __main__:HelloApp().run() 结果画面:

PTA 病毒溯源(树)

题目 病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。 现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。 在此假设给出的变异都是由突变引起…

数据分类保护敏感数据

数据分类是一个过程,用于发现敏感内容,并对关键数据进行分组,以便进一步配置 DLP。数据分类过程分析组织的数据存储库,以便根据文件的内容和上下文有效地将文件分类为不同的类别,并协助配置适当的安全控制级别以符合数…

leetcode:1207. 独一无二的出现次数(python3解法)

难度:简单 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr [1,2,2,1,1,3] 输出:true 解释&…

一站式解决安全问题

端玛科技致力于攻克困难的应用软件安全问题,我们的解决方案以安全标准、安全教育和安全风险评估三大支柱为安全SDLC的基础,这三大支柱相互依存,创建了一个可重复的、安全的软件开发生态系统。 主要业务范围:关注整个软件开发过程…