Docker部署ES集群

引言:

Elasticsearch(ES)作為分布式搜索引擎,其核心價值在于通過集群部署實現高可用性和數據冗余。 本實驗對比兩種典型部署方案: 原生Linux部署:直接安裝ES服務,適用于生產環境,資源利用率高,但需手動管理多節點。?Docker容器化部署:通過容器快速搭建集群,適合測試或動態擴展場景,具備資源隔離和快速回滾優勢。 掌握原生Linux環境下ES集群(≥2節點)的搭建與配置。

克隆一臺新虛擬機(ip10.1.1.42)

也需關閉Slinux和防火墻

一. 創建集群所需要的目錄

1.1 創建ES的掛載目錄

mkdir -p /usr/local/elasticsearch_jiqun_3_node/node-{1..3}/{config,plugins,data,log}

chmod 777 /usr/local/elasticsearch_jiqun_3_node/node-{1..3}/{config,plugins,data,log}

mkdir -p /usr/local/elasticsearch_jiqun_3_node/node-{1..3}/{config,plugins,data,log}
chmod 777 /usr/local/elasticsearch_jiqun_3_node/node-{1..3}/{config,plugins,data,log}

1.2 創建kibana的掛載目錄

mkdir -p /usr/local/elasticsearch_jiqun_3_node/kibana/config/

chmod 777 /usr/local/elasticsearch_jiqun_3_node/kibana/config/

mkdir -p /usr/local/elasticsearch_jiqun_3_node/kibana/config/
chmod 777 /usr/local/elasticsearch_jiqun_3_node/kibana/config/

二.修改Linux的句柄數

vim /etc/sysctl.conf

添加如下內容:(vm.max_map_count=655360)

接下來再關閉swap

swapoff -a

三.修改最大線程數

因為ES運行期間可能創建大量線程,如果線程數支持較少可能報錯

vim /etc/security/limits.conf

# 添加以下內容

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

# 添加以下內容
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

重啟

reboot

四.添加IK分詞器

下載方式1
鏈接: https://pan.baidu.com/s/1zxetPFZyRPyxwFFIL113DQ 提取碼: 9m6a

下載方式2

github中下載對應版本的分詞器,網址:Releases · infinilabs/analysis-ik · GitHub

將下載的分詞器復制到ES安裝目錄的plugins目錄中并進行解壓

將這個ik目錄分別添加到ES的三個節點的plugins目錄里

cp -R ik/*?/usr/local/elasticsearch_jiqun_3_node/node-1/plugins/

cp -R ik/* /usr/local/elasticsearch_jiqun_3_node/node-2/plugins/

cp -R ik/*?/usr/local/elasticsearch_jiqun_3_node/node-3/plugins/

cp -R ik/* /usr/local/elasticsearch_jiqun_3_node/node-1/plugins/
cp -R ik/* /usr/local/elasticsearch_jiqun_3_node/node-2/plugins/
cp -R ik/* /usr/local/elasticsearch_jiqun_3_node/node-3/plugins/

五. 編寫配置文件

5.1 節點文件

Node-1

vi /usr/local/elasticsearch_jiqun_3_node/node-1/config/elasticsearch.yml

cluster.name: elastic

node.name: node-1

node.master: true

node.data: true

node.max_local_storage_nodes: 3

path.data: /usr/share/elasticsearch/data

path.logs: /usr/share/elasticsearch/log

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: ["node-1","node-2","node-3"]

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

gateway.recover_after_nodes: 2

xpack.security.enabled: false

cluster.name: elastic
node.name: node-1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/log
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["node-1","node-2","node-3"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
gateway.recover_after_nodes: 2
xpack.security.enabled: false

Node-2

vi /usr/local/elasticsearch_jiqun_3_node/node-2/config/elasticsearch.yml

cluster.name: elastic

node.name: node-2

node.master: true

node.data: true

node.max_local_storage_nodes: 3

path.data: /usr/share/elasticsearch/data

path.logs: /usr/share/elasticsearch/log

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: ["node-1","node-2","node-3"]

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

gateway.recover_after_nodes: 2

xpack.security.enabled: false

cluster.name: elasticnode.name: node-2node.master: truenode.data: truenode.max_local_storage_nodes: 3path.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/lognetwork.host: 0.0.0.0http.port: 9200transport.tcp.port: 9300discovery.seed_hosts: ["node-1","node-2","node-3"]cluster.initial_master_nodes: ["node-1","node-2","node-3"]gateway.recover_after_nodes: 2xpack.security.enabled: false

Node-3

vi /usr/local/elasticsearch_jiqun_3_node/node-3/config/elasticsearch.yml

cluster.name: elastic

node.name: node-3

node.master: true

node.data: true

node.max_local_storage_nodes: 3

path.data: /usr/share/elasticsearch/data

path.logs: /usr/share/elasticsearch/log

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: ["node-1","node-2","node-3"]

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

gateway.recover_after_nodes: 2

xpack.security.enabled: false

cluster.name: elastic
node.name: node-3
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/log
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["node-1","node-2","node-3"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
gateway.recover_after_nodes: 2
xpack.security.enabled: false

該配置文件定義了 3 個?Elasticsearch?節點,它們組成一個集群,每個節點都將數據存儲在獨立的卷上。

5.2 Kibana文件

vi ?/usr/local/elasticsearch_jiqun_3_node/kibana/config/kibana.yml

server.host: 0.0.0.0

# 監聽端口

server.port: 5601

server.name: "kibana"

# kibana訪問es服務器的URL,就可以有多個,以逗號","隔開

elasticsearch.hosts: ["http://node-1:9200","http://node-2:9201","http://node-3:9202"]

monitoring.ui.container.elasticsearch.enabled: true

# kibana訪問Elasticsearch的賬號與密碼(如果ElasticSearch設置了的話)

elasticsearch.username: "kibana"

elasticsearch.password: "12345"

# kibana日志文件存儲路徑

logging.dest: stdout

# 此值為true時,禁止所有日志記錄輸出

logging.silent: false

# 此值為true時,禁止除錯誤消息之外的所有日志記錄輸出

logging.quiet: false

# 此值為true時,記錄所有事件,包括系統使用信息和所有請求

logging.verbose: false

ops.interval: 5000

# kibana web語言

i18n.locale: "zh-CN"

5.3 編寫Docker部署文檔

cd /usr/local/elasticsearch_jiqun_3_node/

vi docker-compose.yml

version: "3"
services:node-1:image: elasticsearch:7.17.5container_name: es_jiqun_3node-node-1environment:- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"- "TZ=Asia/Shanghai"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536ports:- "9200:9200"logging:driver: "json-file"options:max-size: "50m"volumes:- /usr/local/elasticsearch_jiqun_3_node/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /usr/local/elasticsearch_jiqun_3_node/node-1/plugins:/usr/share/elasticsearch/plugins- /usr/local/elasticsearch_jiqun_3_node/node-1/data:/usr/share/elasticsearch/data- /usr/local/elasticsearch_jiqun_3_node/node-1/log:/usr/share/elasticsearch/lognetworks:- elasticnode-2:image: elasticsearch:7.17.5container_name: es_jiqun_3node-node-2environment:- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"- "TZ=Asia/Shanghai"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536ports:- "9201:9200"logging:driver: "json-file"options:max-size: "50m"volumes:- /usr/local/elasticsearch_jiqun_3_node/node-2/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /usr/local/elasticsearch_jiqun_3_node/node-2/plugins:/usr/share/elasticsearch/plugins- /usr/local/elasticsearch_jiqun_3_node/node-2/data:/usr/share/elasticsearch/data- /usr/local/elasticsearch_jiqun_3_node/node-2/log:/usr/share/elasticsearch/lognetworks:- elasticnode-3:image: elasticsearch:7.17.5container_name: es_jiqun_3node-node-3environment:- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"- "TZ=Asia/Shanghai"ulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536ports:- "9202:9200"logging:driver: "json-file"options:max-size: "50m"volumes:- /usr/local/elasticsearch_jiqun_3_node/node-3/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /usr/local/elasticsearch_jiqun_3_node/node-3/plugins:/usr/share/elasticsearch/plugins- /usr/local/elasticsearch_jiqun_3_node/node-3/data:/usr/share/elasticsearch/data- /usr/local/elasticsearch_jiqun_3_node/node-3/log:/usr/share/elasticsearch/lognetworks:- elastickibana:container_name: es_jiqun_3node_node-kibanaimage: kibana:7.17.5volumes:- /usr/local/elasticsearch_jiqun_3_node/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlports:- 5601:5601networks:- elasticcerebro:image: lmenezes/cerebro:0.9.4container_name: es_jiqun_3node_node-cerebroenvironment:TZ: 'Asia/Shanghai'ports:- '9000:9000'networks:- elastic
networks:elastic:
driver: bridge

六.?啟動服務

七.測試集

輸入http://10.1.1.42:9200

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75467.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

老硬件也能運行的Win11 IoT LTSC (OEM)物聯網版

#記錄工作 Windows 11 IoT Enterprise LTSC 2024 屬于物聯網相關的版本。 Windows 11 IoT Enterprise 是為物聯網設備和場景設計的操作系統版本。它通常針對特定的工業控制、智能設備等物聯網應用進行了優化和定制,以滿足這些領域對穩定性、安全性和長期支持的需求…

【教程】xrdp修改遠程桌面環境為xfce4

轉載請注明出處:小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你,歡迎[點贊、收藏、關注]哦~ 目錄 xfce4 vs GNOME對比 配置教程 1. 安裝 xfce4 桌面環境 2. 安裝 xrdp 3. 配置 xrdp 使用 xfce4 4. 重啟 xrdp 服務 5. 配置防火墻&#xff…

【數據結構 · 初階】- 順序表

目錄 一、線性表 二、順序表 1.實現動態順序表 SeqList.h SeqList.c Test.c 問題 經驗:free 出問題,2種可能性 解決問題 (2)尾刪 (3)頭插,頭刪 (4)在 pos 位…

windows主機中構建適用于K8S Operator開發環境

基于win 10 打造K8S應用開發環境(wsl & kind) 一、wsl子系統安裝 1.1 確認windows系統版本 cmd/powershell 或者win r 運行winver 操作系統要> 19044 1.2 開啟wsl功能 控制面板 -> 程序 -> 啟用或關閉Windows功能 開啟適用于Linu…

計算機視覺色彩空間全解析:RGB、HSV與Lab的實戰對比

計算機視覺色彩空間全解析:RGB、HSV與Lab的實戰對比 一、前言二、RGB 色彩空間?2.1 RGB 色彩空間原理?2.1.1 基本概念?2.1.2 顏色混合機制? 2.2 RGB 在計算機視覺中的應用?2.2.1 圖像讀取與顯示?2.2.2 顏色識別?2.2.3 RGB 色彩空間的局限性? 三、HSV 色彩空…

PyTorch多GPU訓練實戰:從零實現到ResNet-18模型

本文將介紹如何在PyTorch中實現多GPU訓練,涵蓋從零開始的手動實現和基于ResNet-18的簡潔實現。代碼完整可直接運行。 1. 環境準備與庫導入 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l from torchvisio…

micro介紹

micro介紹 Micro 的首要特點是易于安裝(它只是一個靜態的二進制文件,沒有任何依賴關系)和易于使用Micro 支持完整的插件系統。插件是用 Lua 編寫的,插件管理器可自動為你下載和安裝插件。使用簡單的 json 格式配置選項&#xff0…

Linux內核分頁——線性地址結構

每個進程通過一個指針&#xff08;即進程的mm_struct→pgd&#xff09;指向其專屬的頁全局目錄&#xff08;PGD&#xff09;&#xff0c;該目錄本身存儲在一個物理頁框中。這個頁框包含一個類型為pgd_t的數組&#xff0c;該類型是與架構相關的數據結構&#xff0c;定義在<as…

微信小程序開發:微信小程序上線發布與后續維護

微信小程序上線發布與后續維護研究 摘要 微信小程序作為移動互聯網的重要組成部分,其上線發布與后續維護是確保其穩定運行和持續優化的關鍵環節。本文從研究學者的角度出發,詳細探討了微信小程序的上線發布流程、后續維護策略以及數據分析與用戶反饋處理的方法。通過結合實…

分享一些使用DeepSeek的實際案例

文章目錄 前言職場辦公領域生活領域學習教育領域商業領域技術開發領域 前言 以下是一些使用 DeepSeek 的實際案例&#xff1a; DeepSeek使用手冊資源鏈接&#xff1a;https://pan.quark.cn/s/fa502d9eaee1 職場辦公領域 行業競品分析&#xff1a;剛入職的小李被領導要求一天內…

flink iceberg寫數據到hdfs,hive同步讀取

目錄 1、組件版本 環境變量配置 2、hadoop配置 hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 3、hive配置 hive-env.sh hive-site.xml HIVE LIB 原始JAR 4、flink配置集成HDFS和YARN 修改iceberg源碼 編譯iceberg-flink-runtime-1…

qq郵箱群發程序

1.界面設計 1.1 環境配置 在外部工具位置進行配置 1.2 UI界面設計 1.2.1 進入QT的UI設計界面 在pycharm中按順序點擊&#xff0c;進入UI編輯界面&#xff1a; 點擊第三步后進入QT的UI設計界面&#xff0c;通過點擊按鈕進行界面設計&#xff0c;設計后進行保存到當前Pycharm…

【C++游戲引擎開發】第10篇:AABB/OBB碰撞檢測

一、AABB(軸對齊包圍盒) 1.1 定義 ?最小點: m i n = ( x min , y min , z min ) \mathbf{min} = (x_{\text{min}}, y_{\text{min}}, z_{\text{min}}) min=(xmin?,ymin?,zmin?)?最大點: m a x = ( x max , y max , z max ) \mathbf{max} = (x_{\text{max}}, y_{\text{…

大模型是如何把向量解碼成文字輸出的

hidden state 向量 當我們把一句話輸入模型后&#xff0c;例如 “Hello world”&#xff1a; token IDs: [15496, 995]經過 Embedding Transformer 層后&#xff0c;會得到每個 token 的中間表示&#xff0c;形狀為&#xff1a; hidden_states: (batch_size, seq_len, hidd…

C++指針(三)

個人主頁:PingdiGuo_guo 收錄專欄&#xff1a;C干貨專欄 文章目錄 前言 1.字符指針 1.1字符指針的概念 1.2字符指針的用處 1.3字符指針的操作 1.3.1定義 1.3.2初始化 1.4字符指針使用注意事項 2.數組參數&#xff0c;指針參數 2.1數組參數 2.1.1數組參數的概念 2.1…

生命篇---心肺復蘇、AED除顫儀使用、海姆立克急救法、常見情況急救簡介

生命篇—心肺復蘇、AED除顫儀使用、海姆立克急救法、常見情況急救簡介 文章目錄 生命篇---心肺復蘇、AED除顫儀使用、海姆立克急救法、常見情況急救簡介一、前言二、急救1、心肺復蘇&#xff08;CPR&#xff09;&#xff08;1&#xff09;適用情況&#xff08;2&#xff09;操作…

基于神經環路的神經調控可增強遺忘型輕度認知障礙患者的延遲回憶能力

簡要總結 這篇文章提出了一種名為CcSi-MHAHGEL的框架&#xff0c;用于基于多站點、多圖譜fMRI的功能連接網絡&#xff08;FCN&#xff09;分析&#xff0c;以輔助自閉癥譜系障礙&#xff08;ASD&#xff09;的識別。該框架通過多視圖超邊感知的超圖嵌入學習方法&#xff0c;整合…

[WUSTCTF2020]level1

關鍵知識點&#xff1a;for匯編 ida64打開&#xff1a; 00400666 55 push rbp .text:0000000000400667 48 89 E5 mov rbp, rsp .text:000000000040066A 48 83 EC 30 sub rsp, 30h .text:000000…

cpp自學 day20(文件操作)

基本概念 程序運行時產生的數據都屬于臨時數據&#xff0c;程序一旦運行結束都會被釋放 通過文件可以將數據持久化 C中對文件操作需要包含頭文件 <fstream> 文件類型分為兩種&#xff1a; 文本文件 - 文件以文本的ASCII碼形式存儲在計算機中二進制文件 - 文件以文本的…

Gartner發布軟件供應鏈安全市場指南:軟件供應鏈安全工具的8個強制功能、9個通用功能及全球29家供應商

攻擊者的目標是由開源和商業軟件依賴項、第三方 API 和 DevOps 工具鏈組成的軟件供應鏈。軟件工程領導者可以使用軟件供應鏈安全工具來保護他們的軟件免受這些攻擊的連鎖影響。 主要發現 越來越多的軟件工程團隊現在負責解決軟件供應鏈安全 (SSCS) 需求。 軟件工件、開發人員身…