当前位置: 首页 > news >正文

中国建设信息港网站wordpress开源程序建站教程

中国建设信息港网站,wordpress开源程序建站教程,网站开发清单,做网站和推广工资多少Easticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文检索、实时数据分析等场景。为了满足高可用性和高性能的需求,Elasticsearch 通常以集群的方式部署。部署 Elasticsearch 集群时,可以选择两种主要方式:原生 L…

Easticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文检索、实时数据分析等场景。为了满足高可用性和高性能的需求,Elasticsearch 通常以集群的方式部署。部署 Elasticsearch 集群时,可以选择两种主要方式:原生 Linux 部署和 Docker 部署。每种方式都有其独特的优势和适用场景。

  1. 原生 Linux 部署集群:
    学习如何在纯 Linux 环境中手动部署 Elasticsearch 集群。
    掌握 Elasticsearch 集群的基础配置(如主节点、数据节点和协调节点的设置)。
    理解 Elasticsearch 的集群原理,包括分片、路由和数据高可用性。

  2. Docker 部署集群:
    体验通过容器化快速部署和运行 Elasticsearch 集群。
    掌握使用 Docker Compose 编排多个节点服务的技巧。

  • 原生 Linux 部署:直接在物理机或虚拟机上安装和配置 Elasticsearch 节点,适合对性能要求高、资源充足的环境。
  • Docker 部署:使用容器化技术部署 Elasticsearch 节点,适合快速部署、资源隔离和易于扩展的场景。

(一)原生 Linux 部署集群

配置多节点环境(主节点、数据节点等),手动修改配置文件,验证集群状态,并测试数据高可用性。Centos上两个节点node1(10.0.0.11)、node2(10.0.0.13)

原生 Linux 部署集群

1. 特点
  • 直接运行在操作系统上:Elasticsearch 节点直接安装在 Linux 服务器上,性能更高。
  • 灵活性高:可以根据需求自定义配置和优化。
  • 复杂性高:需要手动安装和配置每个节点,适合有经验的运维团队。
  • 资源独占:每个节点独占服务器资源,适合对性能要求高的场景。
2. 部署步骤
  1. 准备服务器
    • 准备多台 Linux 服务器,分别用于 Elasticsearch 节点。
  2. 安装 Java 环境
    • 在每台服务器上安装 Java 运行时环境(JRE 或 JDK)。
  3. 安装 Elasticsearch
    • 下载并安装 Elasticsearch 软件包。
  4. 配置集群
    • 修改 Elasticsearch 配置文件(elasticsearch.yml),设置集群名称、节点名称、网络绑定地址等。
    • 配置节点发现机制(如使用 discovery.seed_hosts)。
  5. 启动服务
    • 启动 Elasticsearch 服务,并确保所有节点加入同一个集群。
  6. 验证集群
    • 使用 curl 或 Kibana 检查集群状态,确保所有节点正常运行。
3. 适用场景
  • 对性能要求高的生产环境。
  • 需要深度定制和优化的场景。
  • 已有成熟的运维团队和基础设施。

1. 在node1部署es

上传elasticsearch-7.6.2-linux-x86_64.tar.gz、kibana-7.6.2-linux-x86_64.tar.gz
解压缩到/usr/local/目录下

tar -xzvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /usr/local
tar -xzvf kibana-7.6.2-linux-x86_64.tar.gz -C /usr/local
cd /usr/local

添加用户elastic并设置密码,chown -R elastic:elastic elasticsearch-7.6.2/

useradd elastic
passwd elastic
chown -R elastic:elastic elasticsearch-7.6.2/

2. 编辑配置文件

  1. 编辑elasticsearch.yml

让es可以远程连接,进入elasticsearch目录的config目录下:vim elasticsearch.yml,增加以下内容

cluster.name: my-es-cluster
node.name: node1
network.host: 10.0.0.11
discovery.seed_hosts: ["10.0.0.11"]
cluster.initial_master_nodes: ["node1"]
  1. 升级垃圾回收器
    建议使用G1垃圾回收器(Garbage-First Garbage Collector),它是Java 9及以后版本的默认垃圾回收器。你可以通过以下选项启用G1:-XX:+UseG1GC

编辑vim jvm.options,
将8-13:-XX:+UseConcMarkSweepGC注释
添加 -XX:+UseG1GC

  1. 增加文件描述符限制
    vim /etc/security/limits.d/20-nproc.conf

Elasticsearch 要求文件描述符的最大数量至少为 65535。

  1. 增加线程数限制
    Elasticsearch 要求用户的最大线程数至少为 4096。
elastic	-	nofile	65535
elastic	-	nproc	4096
  1. 增加虚拟内存限制
    Elasticsearch 要求 vm.max_map_count 至少为 262144。

解决方法:
临时修改(重启后失效):
sudo sysctl -w vm.max_map_count=262144
永久修改:

编辑 /etc/sysctl.conf 文件:
sudo vi /etc/sysctl.conf
在文件末尾添加以下内容:
vm.max_map_count=262144
使配置生效:
sudo sysctl -p
验证虚拟内存限制:
sysctl vm.max_map_count
输出应为 vm.max_map_count = 262144。

  1. java环境

确保安装了 Java 11 或更高版本。
echo $JAVA_HOME
确保 JAVA_HOME 环境变量正确设置。
如果没有输出或输出不正确,请设置 JAVA_HOME:

设置 JAVA_HOME 环境变量:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> /home/elasticsearch/.bashrc
source /home/elasticsearch/.bashrc

配置完成切换elastic用户,启动./elsaticsearch -d

测试curl -X GET “10.0.0.11:9200”
在这里插入图片描述

输入10.0.0.11:9200
在这里插入图片描述

3. 在node1上部署kibana

[root@localhost ~]# cd /usr/local/kibana-7.6.2-linux-x86_64/
[root@localhost kibana-7.6.2-linux-x86_64]# ls
bin  built_assets  config  data  LICENSE.txt  node  node_modules  NOTICE.txt  optimize  package.json  plugins  README.txt  src  webpackShims  x-pack
[root@localhost kibana-7.6.2-linux-x86_64]# cd config/
[root@localhost config]# vim kibana.yml
server.port: 5601
server.host: “10.0.0.11”
server.name: kibana-server
elasticsearch.hosts: [“http://10.0.0.11:9200/”]

配置完后进入bin目录./kibana --allow-root
输入网址:10.0.0.11:5601

在这里插入图片描述

4. 根据node1克隆一台node2

修改node2

vim kibana.yml
server.port: 5601
server.host: “10.0.0.13”
server.name: kibana-server
elasticsearch.hosts: [“http://10.0.0.13:9200/”,“http://10.0.0.11:9200/”]

修改node2

vim elasticsearch.yml
cluster.name: my-es-cluster
node.name: node1
network.host: 10.0.0.11
discovery.seed_hosts: ["10.0.0.11","10.0.0.13"]
cluster.initial_master_nodes: ["node1","node2"]

修改node1,增加node2节点

vim kibana.yml
server.port: 5601
server.host: “10.0.0.11”
server.name: kibana-server
elasticsearch.hosts: [“http://10.0.0.11:9200/”,“http://10.0.0.13:9200/”]修改node21
vim elasticsearch.yml
cluster.name: my-es-cluster
node.name: node1
network.host: 10.0.0.11
discovery.seed_hosts: ["10.0.0.11","10.0.0.13"]
cluster.initial_master_nodes: ["node1","node2"]

启动两台node的kibana和es

(二)Docker 部署 Elasticsearch 集群

Docker 部署集群

1. 特点
  • 容器化运行:Elasticsearch 节点运行在 Docker 容器中,实现资源隔离和快速部署。
  • 易于扩展:通过 Docker Compose 或 Kubernetes 可以快速扩展集群。
  • 资源占用低:容器共享操作系统内核,资源利用率更高。
  • 部署简单:使用 Docker Compose 可以一键部署整个集群。
2. 适用场景
  • 快速部署和测试环境。
  • 资源有限或需要高密度部署的场景。
  • 需要快速扩展和缩容的场景。

1. Es安装

创建yml文件

services:elasticsearch:image: elasticsearch:6.5.4restart: alwayscontainer_name: elasticsearchports:- 9200:9200environment:- JAVA_OPTS=--Xms256m -Xmx1024mkibana:image: kibana:6.5.4restart: alwayscontainer_name: kibanaports:- 5601:5601environment:- elasticsearch_url=http://10.0.0.11:9200depends_on:- elasticsearch
docker compose up -d
docker ps

如果我们的es报: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
需要在:/etc/sysctl.conf 添加上:vm.max_map_count=262144
最后启动配置:sysctl -w vm.max_map_count=262144

10.0.0.11:5601

2. 安装IK分词器

./elasticsearch-plugin install http://43.136.108.62:8080/elasticsearch-analysis-ik-6.5.4.zip
重启ES的容器,让IK分词器生效。
POST _analyze
{"analyzer": "ik_max_word","text":"欢迎来到中国湖南"
}

(三)索引增删改查

  1. 索引创建
    操作:创建索引
json
PUT /my_index
{"settings": {"number_of_shards": 1,"number_of_replicas": 1}
}
使用以下命令检查索引是否存在,如果索引创建成功,输出类似以下内容:[root@localhost ~]# curl -X GET "http://10.0.0.11:9200/_cat/indices/my_index?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   my_index D1F9luEuTwKIIKyYC7pwuQ   1   1          0            0       230b           230b[root@localhost ~]# curl -X GET "http://10.0.0.13:9200/my_index"
{"my_index":{"aliases":{},"mappings":{},"settings":{"index":{"creation_date":"1742522852813","number_of_shards":"1","number_of_replicas":"1","uuid":"ahSMlKcZSSS4xGZeA48arw","version":{"created":"7060299"},"provided_name":"my_index"}}}
  1. 文档插入
    操作:插入文档
POST /my_index/_doc/1
{"name": "John Doe","age": 30
}
使用以下命令检查文档是否存在:GET /my_index/_doc/1
[root@localhost ~]# curl -X GET "http://10.0.0.11:9200/my_index/_doc/1"
{"_index":"my_index","_type":"_doc","_id":"1","_version":3,"_seq_no":2,"_primary_term":1,"found":true,"_source":{"name": "John Doe","age": 30
}
  1. 文档删除
    操作:删除文档
DELETE /my_index/_doc/1
使用以下命令检查文档是否已删除:
GET /my_index/_doc/1
  1. d.索引删除
    操作:删除索引
DELETE /my_index
使用以下命令检查索引是否存在:
GET /_cat/indices/my_index?v
如果索引已删除,输出中不会显示 my_index。

(四)总结

原生 Linux 部署 vs Docker 部署
特性原生 Linux 部署Docker 部署
性能更高,无容器化开销稍低,有容器化开销
部署复杂度高,需手动安装和配置低,使用 Docker Compose 一键部署
资源利用率较低,每个节点独占资源较高,容器共享操作系统内核
扩展性较复杂,需手动扩展简单,支持快速扩展和缩容
适用场景生产环境,对性能要求高测试环境、资源有限或需要快速部署的场景
维护成本较高,需专业运维团队较低,容器化技术简化维护
选择建议
  • 如果您的环境对性能要求高,且拥有成熟的运维团队,可以选择 原生 Linux 部署
  • 如果您需要快速部署、资源隔离和易于扩展,或者资源有限,可以选择 Docker 部署

最终总结
无论是原生 Linux 部署还是 Docker 部署,Elasticsearch 集群的部署都需要根据实际需求和环境特点进行选择。原生部署适合对性能和控制力要求高的场景,而 Docker 部署则更适合快速迭代和资源优化的场景。选择合适的部署方式,可以最大化 Elasticsearch 的性能和可用性,满足业务需求。

http://www.dtcms.com/a/541037.html

相关文章:

  • Win11 跨设备同步的便笺内容突然丢失,如何恢复?
  • 三、cmake语法-提高篇
  • 仓颉编程(20)泛型
  • Go语言2D游戏开发入门004:零基础打造射击游戏《太空大战》3
  • 学习FreeRTOS(FreeRTOS移植到STM32F103C8T6)
  • json缩放 json 缩放
  • maxkb部署,版本升级步骤与注意事项(超详细图文)
  • 测试开发话题02---概念篇
  • 网站建设推广优化排名全国工商核名查询系统官网
  • ASP Content Linking
  • 【研究生随笔】Pytorch中的卷积神经网络(1)
  • Android运行项目报错集合
  • 为什么电脑会蓝屏?怎么快速解决电脑蓝屏问题
  • js建设网站html5网站开发价格
  • ESP32学习笔记(基于IDF):OneNET物模型数据交互(控制小灯)
  • JavaScript逆向与爬虫实战——基础篇(css反爬之动态字体实现原理及绕过)
  • 浏览器在请求 js/css 静态文件时,服务器返回了 500 内部错误 500 Internal Server Error
  • CSS 实现酷炫的不规则圆角与斜角边框效果(四种方法详解)
  • 在线网站地图生成器自建购物网站多少钱
  • 网站开发的整个流程一家只做卫生巾的网站
  • xv6-riscv开发调试环境搭建(vscode+ubuntu)
  • 架构兜底五大手段:构建韧性系统的全面防御体系
  • 阿里巴巴有几个网站是做外贸的wordpress 禅意主题
  • 在 `PaddleOCR` 中配置自定义模型(如自己训练的检测/识别模型)
  • 云谷系统网站开发网站备案要收费吗
  • 前端页面初始化加载速度优化方案
  • 【数据库】金仓数据库构建集团化医院全栈信创“全链路解决方案”
  • MATLAB基于自适应动态特征加权的K-means算法
  • 我的Dify OCR 识别发票准确率测试工具
  • 免费域名申请网站大全封面型网站首页怎么做