wordpress小人无法显示,石家庄网站排名优化哪家好,网站设计语言翻译,嘉陵区建设局网站1. 在 CentOS 上安装和配置 Elasticsearch
在 CentOS 系统下#xff0c;安装 Elasticsearch 主要分为以下步骤#xff1a;
1.1 准备工作
在开始安装之前#xff0c;确保你的系统满足以下基本条件#xff1a;
CentOS 版本要求#xff1a;推荐使用 CentOS 7 及以上版本。…1. 在 CentOS 上安装和配置 Elasticsearch
在 CentOS 系统下安装 Elasticsearch 主要分为以下步骤
1.1 准备工作
在开始安装之前确保你的系统满足以下基本条件
CentOS 版本要求推荐使用 CentOS 7 及以上版本。Java 环境Elasticsearch 依赖于 Java 运行时环境 (JRE)。需要确保 Java 版本为 8 或更高。系统资源Elasticsearch 对内存和磁盘有较高要求至少 4GB 的内存推荐 8GB 或更高并确保有足够的磁盘空间来存储索引数据。
1.2 安装 Java
首先确认系统已经安装了 Java如果没有可以通过以下命令安装 OpenJDK 8
sudo yum install java-1.8.0-openjdk-devel安装完成后验证 Java 版本
java -version确保输出显示 Java 版本为 1.8 及以上。
1.3 下载并安装 Elasticsearch
添加 Elasticsearch 官方仓库
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch创建 Elasticsearch 的 yum 仓库文件
sudo nano /etc/yum.repos.d/elasticsearch.repo将以下内容粘贴进去
[elasticsearch-8.x]
nameElasticsearch repository for 8.x packages
baseurlhttps://artifacts.elastic.co/packages/8.x/yum
gpgcheck1
gpgkeyhttps://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled1
autorefresh1
typerpm-md保存文件并退出。
更新仓库并安装 Elasticsearch
sudo yum update
sudo yum install elasticsearch1.4 配置 Elasticsearch
Elasticsearch 的配置文件位于 /etc/elasticsearch/elasticsearch.yml。这是主要的配置文件你需要根据实际需求进行修改。
1.4.1 基本配置
打开配置文件
sudo nano /etc/elasticsearch/elasticsearch.yml我们首先配置集群名称和节点名称
# 集群名称
cluster.name: my-application-cluster# 节点名称
node.name: node-11.4.2 网络配置
默认情况下Elasticsearch 仅绑定到 localhost这意味着它只能在本机上访问。如果你希望在网络中访问 Elasticsearch需要修改以下配置
# 绑定地址为所有网络接口
network.host: 0.0.0.0# 配置允许的端口
http.port: 92001.4.3 数据和日志路径
Elasticsearch 默认将数据存储在 /var/lib/elasticsearch日志存储在 /var/log/elasticsearch。可以根据需求修改这些路径
# 数据存储路径
path.data: /path/to/your/data# 日志存储路径
path.logs: /path/to/your/logs1.4.4 JVM 配置
Elasticsearch 的性能很大程度上依赖于内存的分配。在生产环境中推荐设置 JVM 的堆内存大小为系统总内存的 50%。你可以通过修改 jvm.options 文件来配置
sudo nano /etc/elasticsearch/jvm.options找到 -Xms 和 -Xmx 选项并修改为适合的大小
-Xms4g # 设置最小堆内存为 4GB
-Xmx4g # 设置最大堆内存为 4GB1.5 启动 Elasticsearch
配置完成后可以使用以下命令启动 Elasticsearch
sudo systemctl start elasticsearch确保 Elasticsearch 开机启动
sudo systemctl enable elasticsearch检查 Elasticsearch 服务状态
sudo systemctl status elasticsearch1.6 验证安装
Elasticsearch 启动成功后打开浏览器访问 http://localhost:9200/。如果看到类似以下的 JSON 输出说明安装成功
{name : node-1,cluster_name : my-application-cluster,cluster_uuid : xxxxxx,version : {number : 8.x.x,build_flavor : default,build_type : rpm,build_hash : xxxxxxx,build_date : 2024-xx-xx,build_snapshot : false,lucene_version : 9.x,minimum_wire_compatibility_version : 7.x,minimum_index_compatibility_version : 7.x},tagline : You Know, for Search
}2. Docker 中部署 Elasticsearch
在生产环境和开发环境中Docker 可以极大简化 Elasticsearch 的部署过程。通过 Docker你可以轻松地在多个环境中创建一致的运行环境而不必担心安装和配置过程中的细节问题。下面将详细介绍如何在 Docker 中部署单节点和集群版本的 Elasticsearch。
2.1 安装 Docker
首先需要在 CentOS 上安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker验证 Docker 安装是否成功
docker --version输出类似以下内容即表示 Docker 安装成功
Docker version 24.0.0, build abcdefg2.2 Docker 中的单节点 Elasticsearch 部署
拉取 Elasticsearch Docker 镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.x.x运行单节点 Elasticsearch 容器
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 \-e discovery.typesingle-node \docker.elastic.co/elasticsearch/elasticsearch:8.x.x-d 表示在后台运行容器。--name 设置容器名称为 elasticsearch。-p 映射宿主机的端口9200 是 HTTP 端口9300 是集群节点间通信的端口。discovery.typesingle-node 指定为单节点模式不启动集群。
验证 Elasticsearch 是否成功运行
运行以下命令查看 Docker 容器的状态
docker ps应该能看到类似以下输出表明容器正在运行
CONTAINER ID IMAGE STATUS PORTS
xxxxxxxxxx docker.elastic.co/elasticsearch/elasticsearch Up 10 seconds 0.0.0.0:9200-9200/tcp, 0.0.0.0:9300-9300/tcp打开浏览器并访问 http://localhost:9200/如果看到类似以下的 JSON 响应表示 Elasticsearch 运行正常
{name : elasticsearch,cluster_name : docker-cluster,cluster_uuid : xxxxxx,version : {number : 8.x.x,build_flavor : default,build_type : docker,build_hash : xxxxxxx,build_date : 2024-xx-xxTxx:xx:xx,build_snapshot : false,lucene_version : 9.x,minimum_wire_compatibility_version : 7.x,minimum_index_compatibility_version : 7.x},tagline : You Know, for Search
}2.3 使用 Docker Compose 部署 Elasticsearch 集群
在生产环境中通常需要部署多个节点组成集群。使用 Docker Compose可以更方便地管理多节点部署。下面是如何使用 Docker Compose 部署 Elasticsearch 集群。
安装 Docker Compose
如果你尚未安装 Docker Compose可以通过以下命令安装
sudo curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod x /usr/local/bin/docker-compose验证安装是否成功
docker-compose --version创建 Docker Compose 配置文件
在项目目录下创建一个名为 docker-compose.yml 的文件内容如下
version: 3
services:elasticsearch-node1:image: docker.elastic.co/elasticsearch/elasticsearch:8.x.xcontainer_name: es-node1environment:- node.namees-node1- cluster.namees-docker-cluster- discovery.seed_hostses-node2,es-node3- cluster.initial_master_nodeses-node1,es-node2,es-node3- bootstrap.memory_locktrue- ES_JAVA_OPTS-Xms512m -Xmx512mulimits:memlock:soft: -1hard: -1volumes:- esdata1:/usr/share/elasticsearch/dataports:- 9200:9200- 9300:9300elasticsearch-node2:image: docker.elastic.co/elasticsearch/elasticsearch:8.x.xcontainer_name: es-node2environment:- node.namees-node2- cluster.namees-docker-cluster- discovery.seed_hostses-node1,es-node3- cluster.initial_master_nodeses-node1,es-node2,es-node3- bootstrap.memory_locktrue- ES_JAVA_OPTS-Xms512m -Xmx512mulimits:memlock:soft: -1hard: -1volumes:- esdata2:/usr/share/elasticsearch/dataelasticsearch-node3:image: docker.elastic.co/elasticsearch/elasticsearch:8.x.xcontainer_name: es-node3environment:- node.namees-node3- cluster.namees-docker-cluster- discovery.seed_hostses-node1,es-node2- cluster.initial_master_nodeses-node1,es-node2,es-node3- bootstrap.memory_locktrue- ES_JAVA_OPTS-Xms512m -Xmx512mulimits:memlock:soft: -1hard: -1volumes:- esdata3:/usr/share/elasticsearch/datavolumes:esdata1:driver: localesdata2:driver: localesdata3:driver: local该配置文件定义了 3 个 Elasticsearch 节点它们组成一个集群每个节点都将数据存储在独立的卷上。
启动 Elasticsearch 集群
在 docker-compose.yml 文件所在的目录中运行以下命令
docker-compose up -d此命令将启动 3 个 Elasticsearch 节点并组成一个集群。你可以通过以下命令查看运行状态
docker-compose ps验证集群状态
可以通过 API 请求检查集群状态
curl -X GET localhost:9200/_cluster/health?pretty如果集群状态为 green说明集群已成功启动且工作正常。 3. 集群环境部署详解
Elasticsearch 集群是一种分布式架构通过水平扩展节点来提升系统的容量和性能。一个典型的集群通常包含多个 Master 节点、Data 节点 和 协调节点。下面详细介绍 Elasticsearch 集群的核心组件和集群部署的关键配置。
3.1 Master 节点和 Data 节点
Master 节点负责管理整个集群的元数据包括节点加入/退出、索引创建/删除、分片分配等操作。一个集群应该有多个 master 节点以提高容错性。Data 节点负责存储实际的数据并执行索引、搜索等操作。data 节点的数量决定了集群的存储容量和处理能力。
在生产环境中通常会通过独立的配置文件来指定节点角色确保 master 节点和 data 节点的职责明确。
3.1.1 配置 Master 节点
在 elasticsearch.yml 中设置节点角色为 master
node.master: true
node.data: false此配置确保该节点只作为 master 角色不处理数据存储和搜索请求。
3.1.2 配置 Data 节点
在 elasticsearch.yml 中设置节点角色为 data
node.master: false
node.data: trueData 节点负责存储和搜索数据不参与集群的管理操作。
3.2 分片与副本
Elasticsearch 通过将索引数据拆分为多个 分片Shards 来提高系统的可扩展性和性能。每个分片可以存储在集群中的不同节点上实现数据的水平扩展。同时Elasticsearch 通过 副本Replicas 提供数据冗余和高可用性。副本是分片的复制版当主分片失效时副本可以继续提供服务。
配置分片和副本数量时可以通过如下方式进行设置
PUT /my-index
{settings: {index: {number_of_shards: 5,number_of_replicas: 1}}
}在这个配置中索引 my-index 将被拆分为 5 个主分片并为每个分片创建 1 个副本。
3.3 集群的健康状态检查
集群启动后可以通过 Elasticsearch 提供的 API 来检查集群的健康状态。健康状态分为三种
green所有分片和副本都分配到位。yellow所有主分片分配到位但副本分片未完全分配通常是因为缺少足够的节点。red部分主分片未能分配可能导致数据丢失。
使用以下命令检查集群的健康状态
curl -X GET localhost:9200/_cluster/health?pretty输出如下表示集群处于健康状态
{cluster_name : docker-cluster,status : green,number_of_nodes : 3,number_of_data_nodes : 3,active_primary_shards : 5,active_shards : 10,relocating_shards : 0,initializing_shards : 0,unassigned_shards : 0,delayed_unassigned_shards : 0,number_of_pending_tasks : 0,number_of_in_flight_fetch : 0
}在生产环境中确保集群健康是非常重要的可以通过设置警报和自动化监控来及时检测和修复问题。 通过 Docker 部署 Elasticsearch可以极大简化集群的管理和扩展。无论是单节点还是集群部署Docker 都能提供一致的运行环境极大地提高了灵活性和可维护性。在生产环境中还应根据具体需求优化内存分配、数据持久化和安全性配置。