首页 > 其他分享 >自动化部署elasticsearch三节点集群

自动化部署elasticsearch三节点集群

时间:2024-05-20 17:29:59浏览次数:30  
标签:opt 搜索 索引 集群 elasticsearch Elasticsearch 节点

什么是Elasticsearch?

Elasticsearch 是一个开源的分布式搜索和分析引擎,构建在 Apache Lucene 的基础上。它提供了一个分布式多租户的全文搜索引擎,具有实时分析功能。Elasticsearch 最初是用于构建全文搜索引擎,但它的功能已经扩展到包括日志分析、应用程序性能监控、地理信息系统等领域。

以下是 Elasticsearch 的一些主要特点和用途:

  1. 全文搜索:Elasticsearch 提供强大的全文搜索功能,可以快速搜索大量文档并返回相关性高的结果。

  2. 分布式:Elasticsearch 是一个分布式系统,可以水平扩展到数百台服务器,处理大规模的数据集。

  3. 实时性:Elasticsearch 提供实时搜索和分析功能,可以在数据被索引之后立即可用。

  4. 多功能:除了全文搜索之外,Elasticsearch 还提供了聚合、过滤、地理位置搜索、自定义标记、实时分析等功能。

  5. 可扩展性:Elasticsearch 可以通过插件扩展功能,满足不同场景的需求。

  6. 易用性:Elasticsearch 提供了简单的 RESTful API,易于集成到各种应用程序中,并提供了丰富的客户端库。

  7. 日志分析:Elasticsearch 通常与 Logstash 和 Kibana(称为 ELK 栈)一起使用,用于实时日志分析和可视化。

  8. 应用程序性能监控:Elasticsearch 还可以用于监控应用程序性能,收集和分析指标数据

 

Elasticsearch的应用场景?

Elasticsearch 的应用场景非常广泛,以下是一些常见的应用场景:

  1. 全文搜索引擎:Elasticsearch 提供了强大的全文搜索功能,可以用于构建各种类型的搜索引擎,包括网站搜索、文档搜索、产品搜索等。

  2. 日志和事件分析:Elasticsearch 可以用于实时收集、存储和分析大量的日志和事件数据。它与 Logstash 和 Kibana 一起组成 ELK 栈,用于实时日志分析和可视化。

  3. 指标和性能监控:Elasticsearch 可以用于收集和分析应用程序和系统的性能指标,帮助开发人员和运维团队监控应用程序的健康状况,并快速定位问题。

  4. 内容推荐:基于用户行为和内容特征,Elasticsearch 可以用于实现个性化的内容推荐系统,提供用户喜好的文章、产品或媒体。

  5. 电商搜索和推荐:在电商网站中,Elasticsearch 可以用于实现快速、准确的产品搜索,以及基于用户行为的个性化推荐。

 

Elasticsearch 的架构设计主要涉及以下几个方面:

1. 分布式架构

Elasticsearch 是一个分布式系统,可以水平扩展到多个节点,处理大规模的数据集。它将索引分成多个分片(shard),每个分片可以分布在集群中的不同节点上,从而实现数据的分布式存储和处理。此外,Elasticsearch 还支持副本(replica),用于提高数据的可靠性和可用性。

2. 节点角色

在 Elasticsearch 集群中,每个节点可以担任不同的角色:

  • 主节点(Master Node):负责集群的管理和协调,包括创建和删除索引、分配分片、故障检测和节点加入/退出等操作。

  • 数据节点(Data Node):存储数据的节点,负责索引和搜索数据。每个数据节点都保存部分数据分片,并处理搜索请求和索引请求。

  • 协调节点(Coordinating Node):处理客户端请求的节点,负责路由请求到适当的数据节点,并将结果汇总返回给客户端。

3. 索引和分片

数据在 Elasticsearch 中存储在索引(Index)中,每个索引可以分成多个分片。索引是逻辑上的数据集合,分片是数据的物理存储单元。分片可以水平扩展到多个节点上,实现数据的分布式存储和并行处理。

4. 倒排索引

Elasticsearch 使用倒排索引(Inverted Index)来加速搜索操作。倒排索引是一种数据结构,可以快速地找到包含特定词条的文档。对于每个词条,倒排索引会记录该词条出现在哪些文档中,以及在文档中的位置信息。

5. RESTful API

Elasticsearch 提供了基于 HTTP 的 RESTful API,使用户可以使用简单的 HTTP 请求与 Elasticsearch 进行交互。通过 RESTful API,用户可以执行索引、搜索、聚合、删除等操作,以及管理集群和节点。

6. 插件机制

Elasticsearch 提供了丰富的插件机制,允许用户扩展和定制其功能。用户可以编写自定义插件,添加新的功能或改进现有功能,例如添加新的分析器、查询语法、存储后端等。

 

自动化部署

  部署之前准备必要的jdk,安装包已经打包好了再网盘里面

tar -zxvf elaticsearch.tar.gz
将下载下来的传到要部署的节点执行
bash -x deploy_elaticsearch.sh ip1 ip2 ip3 1

  其中脚本内容如下所示

 

#!/bin/bash

# 创建esadmin用户,并设置密码
useradd esadmin && echo "esadmin:Ebupt#202401f" | chpasswd

# 创建安装目录并解压Elasticsearch
mkdir -p /opt/elasticsearch/
tar -zxvf elasticsearch-7.15.1-linux-x86_64.tar.gz -C /opt/elasticsearch/

# 创建Elasticsearch数据、日志和仓库目录
mkdir -p /opt/elasticsearch/elasticsearch-7.15.1/es/{data,logs,repo}

# 备份旧的配置文件并写入新的配置文件
mv /opt/elasticsearch/elasticsearch-7.15.1/config/elasticsearch.yml /opt/elasticsearch/elasticsearch-7.15.1/config/elasticsearch.yml.bak
cat <<EOF | sudo tee /opt/elasticsearch/elasticsearch-7.15.1/config/elasticsearch.yml > /dev/null
# 集群和节点配置
cluster.name: es-cluster
node.name: node-$4
node.master: true
node.data: true
node.ingest: true

# 网络和发现配置
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["$1", "$2", "$3"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
discovery.zen.fd.ping_interval: 30s
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 6

# JVM调优
#bootstrap.memory_lock: true
#indices.memory.index_buffer_size: 50%

# 索引和搜索配置
#index.number_of_shards: 5
#index.number_of_replicas: 1
#indices.queries.cache.size: 20%

# 磁盘和文件系统配置
path.data: /opt/elasticsearch/elasticsearch-7.15.1/es/data
path.logs: /opt/elasticsearch/elasticsearch-7.15.1/es/logs
path.repo: /opt/elasticsearch/elasticsearch-7.15.1/es/repo

# 监控和性能调优
xpack.monitoring.enabled: true
thread_pool.search.size: 50
search.max_buckets: 10000

# HTTP跨域设置
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF

# 设置Java参数
echo "-Xms3g" >> /opt/elasticsearch/elasticsearch-7.15.1/config/jvm.options
echo "-Xmx3g" >> /opt/elasticsearch/elasticsearch-7.15.1/config/jvm.options

# 内核优化
echo "esadmin soft nofile 65536" >> /etc/security/limits.conf
echo "esadmin hard nofile 131072c" >> /etc/security/limits.conf
echo "esadmin soft nproc 4096" >> /etc/security/limits.conf
echo "esadmin hard nproc 4096" >> /etc/security/limits.conf
echo "elasticsearch soft memlock unlimited" >> /etc/security/limits.conf
echo "elasticsearch hard memlock unlimited" >> /etc/security/limits.conf

# 查看当前ulimit配置
ulimit -a

#内核优化2
echo "vm.max_map_count=655360" >> /etc/sysctl.conf && sysctl -p

#修改目录权限
chmod -R esadmin /opt/elasticsearch

#添加es_java_home
cat << EOF | sudo tee -a /etc/profile
export ES_JAVA_HOME=/opt/elasticsearch/elasticsearch-7.15.1/jdk
EOF
source /etc/profile
# 使用esadmin用户启动Elasticsearch
su - esadmin -c "/opt/elasticsearch/elasticsearch-7.15.1/bin/elasticsearch -d"

标签:opt,搜索,索引,集群,elasticsearch,Elasticsearch,节点
From: https://www.cnblogs.com/wxm-pythoncoder/p/18202465

相关文章

  • 使用私有云搭建ceph集群(一)
    环境背景本次ceph集群的搭建过程,利用学校数据中心服务器上部署的openstack私有云来进行实验学习[登录账户]一、初始配置(两张网卡)network1配置点击+创建网络进行网络的创建,首先对网络进行命名对网络中的子网进行配置,设置子网名称subnet1以及网络地址192.168.1.0/24,网关......
  • Hadoop集群模式的搭建之三:搭建Hadoop完全分布式集群
    Hadoop可以按如下3种模式进行安装和运行。(1)单机模式:Hadoop的默认模式,安装时不需要修改配置文件(2)伪分布式模式:Hadoop安装在一台计算机上,需要修改相应的配置文件,用一台计算机模拟多台主机的集群。(3)完全分布式模式:在多台计算机上安装JDK和Hadoop,组成相互连通的集群,需要修改相应的......
  • redis实现分片集群
     为什么要使用分片集群?主从和哨兵可以解决高可用、高并发读的问题。但是仍存在海量数据存储、高并发写问题分片集群特征:集群中有多个master,每个master保存不同数据。为master置备了后备隐藏能源:多个slave节点优化了sentinel,master互相ping检测彼此状态结构复杂,难弄 ......
  • Linux集群管理
    1.ssh密钥认证全过程 2.Ansible自动化运维:批量管理,批量分发,批量执行,维护。。Ansible是python写的.  3.Ansible管理架构Inventory主机清单:被管理主机的ip列表,分类.ad-hoc模式:命令行批量管理(使用ans模块),临时任务.playbook剧本模式:类似于把操作写出脚......
  • kingbase数据json操作:表转json、json转表、节点查询、节点添加
    1、json_array_elements(json)这个函数将JSON数组转换为行集合。例如:SELECTjson_array_elements('[1,2,3]')ASelement;将返回一个包含每个数组元素的行。2、json_each(json)这个函数将JSON对象展开为(key,value)对。例如:SELECT*FROMjson_each('{"a":1,"b":2}');......
  • Ack集群Pod独占EIP实践
    1.背景某线上应用部署在ack集群内,用于根据用户定义的http请求项配置,周期性检查http接口的请求响应状态,接口地址为内网或公网,当接口地址为公网时,频繁出现请求超时的报警错误。经过排查发现,在公网请求发生超时的时刻,集群vpcNAT带宽达到上限200Mbps,也就是25MB/s分析:由于集群占用......
  • 图神经网络入门示例:使用PyTorch Geometric 进行节点分类
    基于图的神经网络是强大的模型,可以学习网络中的复杂模式。在本文中,我们将介绍如何为同构图数据构造PyTorchData对象,然后训练不同类型的神经网络来预测节点所属的类。这种类型的预测问题通常被称为节点分类。我们将使用来自BenedekRozemberczki,CarlAllen和RikSarkar于2019......
  • 第四节:MySQL主从集群搭建、扩容与数据迁移、半同步复制详解
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 使用joinjs绘制流程图(十)-实战-绘制流程图+自定义节点样式(优化)
    问题前面自定义节点的样式坐标位置不对,我们希望自定义节点的坐标和rect元素的位置是一样的效果图代码<template><divclass="app"><divref="myholder"id="paper"></div></div></template><script>import*asjointfrom&......
  • 源服务器开启gzip,CDN上没开启,CDN节点请求是以gzip大小算还是按原来的大小算
    今天学到一个知识:当源服务器开启了gzip压缩,而CDN上没有开启gzip时,CDN节点请求的流量计算通常是基于未压缩的原始文件大小来计算的。这是因为CDN通常是根据其接收到的内容来计算流量,而不会主动去解压缩已压缩的内容来计算。具体来说,当CDN节点从源服务器获取内容时,如果源服务器返......