[2-02-02].第04節:環境搭建 - Linux搭建ES集群環境

ElasticSearch學習大綱


一、ES集群規劃:

關系型數據庫(比如Mysql)非關系型數據庫(Elasticsearch)非關系型數據庫(Elasticsearch)
centos7hadoop103192.168.148.3
centos7hadoop104192.168.148.4
centos7hadoop105192.168.148.5

二、集群環境搭建:

2.1.Docker部署ES-7.12集群:

第1步:.編寫docker-compose文件:

version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

第2步:執行docker-compose文件:

docker-compose up

2.2.直接搭建方式(基于ES-7.8.0):

第1步:下載ES

  • 1.解壓壓縮包:tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module
    在這里插入圖片描述
  • 2.將文件名更改成es-cluster:mv elasticsearch-7.8.0 es-cluster:
    在這里插入圖片描述

第2步:創建用戶:

  • 1.創建用戶:Elasticsearch 因為安全問題,不允許 root 用戶直接運行,所以要在每個節點中創建新用戶,在 root 用戶中創建新用戶
useradd es #新增 es 用戶
passwd es #為 es 用戶設置密碼
userdel -r es #如果錯了,可以刪除再加
chown -R es:es /opt/module/es-cluster #文件夾所有者

在這里插入圖片描述

  • 2.將軟件分發到另外兩臺服務器上:
    在這里插入圖片描述

第3步:更改配置

  • 1.配置目錄:安裝完畢后會生成很多文件,包括配置文件日志文件等等,下面幾個是最主要的配置文件路徑
    • /opt/module/es-cluster/ # elasticsearch 安裝目錄
    • /opt/module/es-cluster/config/elasticsearch.yml #elasticsearch的配置文件
    • /opt/module/es-cluster/config/jvm.options #JVM相關的配置,內存大小等等
    • /data/elk1/data # 數據存放路徑
    • /data/elk1/logs # 日志存放路徑
  • 2.創建用于存放數據與日志的目錄:數據文件會隨著系統的運行飛速增長,所以默認的日志文件與數據文件的路徑不能滿足我們的需求,需要手動創建日志與數據文件路徑
mkdir -p /data/elk1/data
mkdir -p /data/elk1/logs
  • 3.集群配置:vim /opt/module/es-cluster/config/elasticsearch.yml(yml文件有嚴格的語法要求,在配置的時候,一定要注意語法,這里容易出現錯誤)
# 加入如下配置
# #集群名稱cluster.name: cluster-es
# 節點名稱,每個節點的名稱不能重復node.name: node-1
#ip 地址,每個節點的地址不能重復network.host: hadoop103
#是不是有資格主節點node.master: truenode.data: truehttp.port: 9200
## head 插件需要這打開這兩個配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,節點發現discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群內同時啟動的數據任務個數,默認是 2 個cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或刪除節點及負載均衡時并發恢復的線程個數,默認 4 個cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化數據恢復時,并發恢復線程的個數,默認 4 個cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名稱cluster.name: cluster-es
# 節點名稱,每個節點的名稱不能重復node.name: node-2
#ip 地址,每個節點的地址不能重復network.host: hadoop104
#是不是有資格主節點node.master: truenode.data: truehttp.port: 9200
## head 插件需要這打開這兩個配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,節點發現discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群內同時啟動的數據任務個數,默認是 2 個cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或刪除節點及負載均衡時并發恢復的線程個數,默認 4 個cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化數據恢復時,并發恢復線程的個數,默認 4 個cluster.routing.allocation.node_initial_primaries_recoveries: 16
# 加入如下配置
# #集群名稱cluster.name: cluster-es
# 節點名稱,每個節點的名稱不能重復node.name: node-3
#ip 地址,每個節點的地址不能重復network.host: hadoop105
#是不是有資格主節點node.master: truenode.data: truehttp.port: 9200
## head 插件需要這打開這兩個配置http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb
##es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉 mastercluster.initial_master_nodes: ["node-1"]
##es7.x 之后新增的配置,節點發現discovery.seed_hosts: ["192.168.148.3:9300","192.168.148.4:9300","192.168.148.5:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true
##集群內同時啟動的數據任務個數,默認是 2 個cluster.routing.allocation.cluster_concurrent_rebalance: 16
##添加或刪除節點及負載均衡時并發恢復的線程個數,默認 4 個cluster.routing.allocation.node_concurrent_recoveries: 16
##初始化數據恢復時,并發恢復線程的個數,默認 4 個cluster.routing.allocation.node_initial_primaries_recoveries: 16
  • 三臺機器不一樣的elasticsearch.yml配置點如下
node.name: node-1      #192.168.148.3
node.name: node-2      #192.168.148.4
node.name: node-3      #192.168.148.5
network.host: 192.168.148.3	#192.168.148.3
network.host: 192.168.148.4	#192.168.148.4
network.host: 192.168.148.5	#192.168.148.5
  • 4.JVM配置:
    • 由于Elasticsearch是Java開發的,所以可以通過/etc/elasticsearch/jvm.options配置文件來設定JVM的相關設定。如果沒有特殊需求按默認即可。
    • 但是其中還是有兩項最重要的-Xmx1g與-Xms1gJVM的最大最小內存。如果太小會導致Elasticsearch剛剛啟動就立刻停止。太大會拖慢系統本身。
 vim /opt/module/es-cluster/config/jvm.options
-Xms1g   修改為 ===>  -Xms2g
-Xmx1g   修改為 ===>  -Xmx2g

第4步:修改配置

  • 1.修改/etc/sysctl.conf:添加如下配置后并重新加載:sysctl -p
vm.max_map_count=655360
  • 2.切換用戶es后,切到es的安裝目錄后,啟動服務:./bin/elasticsearch

2.3."_cat"集群命令介紹:

GET /_cat/nodes	 #查看所有節點。集群中會用到
GET /_cat/health  #查看es健康狀況
GET /_cat/master  #查看主節點
GET /_cat/indices #查看所有索引 ,等價于mysql數據庫的show databases;

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


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

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

相關文章

部署并運行Spike-Driven-Transformer或QKFormer

部署并運行Spike-Driven-Transformer或QKFormer 我將指導你如何部署和運行Spike-Driven-Transformer或QKFormer代碼,并在CIFAR-10、CIFAR-100和ImageNet-1K數據集上進行訓練和測試。 1. 環境準備 首先需要設置Python環境并安裝必要的依賴項: # 創建conda環境(推薦) con…

爬蟲-request處理POST

1.概念很少在URL寫參數,都在form data里面POST 的主要作用是將客戶端的數據提交給服務器。這些數據可以是表單輸入、文件內容、JSON 數據、XML 數據等等POST 請求攜帶的數據放在 HTTP 消息的請求體中。這與 GET 請求形成鮮明對比:GET 請求的數據通常附加…

免U盤一鍵重裝系統

免U盤一鍵重裝系統 簡單介紹 詳細的看GitHub項目首頁 GitHub地址 # 下載腳本 curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O reinstall.sh $_ # 重裝系統 bash reinstall.sh ubuntu # 重啟 rebootPS: 重啟過程中, 可能需要手動選擇r…

自動化一次通過率

自動化測試中的“一次通過率”(First-pass Pass Rate)?? 是指自動化測試腳本在首次執行(無人工干預、無重試)?時,?成功通過的測試用例數占總執行用例數的百分比。?核心概念解析???“一次”的含義??首次運行?…

111111事件

1.抽取 minio 當做文件對象存儲服務器,在上面封裝一層api,方便操作。 (文件上傳,指定路徑上傳,隨機命名上傳,前端獲取token直接傳,適合大對象,圖片壓縮) 2.規范整個java項…

Qt的ui文件的編譯和使用

Qt中的ui文件編譯的類 要么繼承 ,要么實例化一個變量個人覺得還是繼承好點,這樣每次調用控件時,不用都要在控件前加上 ui.1 上面使用的是繼承的關系,這樣就可以直接使用控件.屬性,而不用 ui.控件.樹形2 QT中UI文件…

數據結構之樹,二叉樹,二叉搜索樹

一.樹1.形狀2. 相關概念節點的度:一個節點含有的子樹的個數稱為該節點的度; 如上圖:A的為6葉節點或終端節點:度為0的節點稱為葉節點; 如上圖:B、C、H、I...等節點為葉節點非終端節點或分支節點:…

LLM微調隨記錄

【如何把領域文獻批量轉換為可供模型微調的數據集?】 https://www.bilibili.com/video/BV1y8QpYGE57/?share_sourcecopy_web&vd_source8f9078186b93d9eee26026fd26e8a6ed 幾個問題 首先要先搞清楚這幾個問題 LLM 訓練方法如何選擇合適的訓練方式如何判斷是否…

高效處理大體積Excel文件的Java技術方案解析

高效處理大體積Excel文件的Java技術方案解析 引言 在數據密集型應用中,處理數百MB甚至GB級的Excel文件已成為業務剛需。傳統基于DOM模型的Excel解析方式(如Apache POI的XSSF)在處理大規模數據時存在嚴重的內存瓶頸。本文將深入探討Java生態中…

JVM垃圾回收機制深度解析

🗑? JVM垃圾回收機制深度解析 文章目錄🗑? JVM垃圾回收機制深度解析🔍 垃圾判定算法🔢 引用計數法🌐 可達性分析算法🔄 垃圾回收算法🏷? 標記-清除算法📋 復制算法🔧 …

Docker:容器化技術的基石與實踐指南

在現代軟件開發和部署中,Docker 作為一種領先的容器化平臺,已經成為了開發人員和運維工程師不可或缺的工具。它不僅簡化了應用的部署過程,還提高了應用的可移植性和可擴展性。本文將深入探討 Docker 的核心概念、基本操作以及如何在實際項目中…

java web7(黑馬)

Filter簡介概念: Filter 表示過濾器,是 JavaWeb 三大組件(Servlet、Filter、Listener)之一。過濾器可以把對資源的請求攔截下來,從而實現一些特殊的功能。過濾器一般完成一些通用的操作,比如:權限控制、統一編碼處理、敏感字符處理等等.快速入…

React-forwardRef-useImperativeHandle

forwardRef 暴露dom節點作用:使用ref暴露DOM節點給父組件案例例如在父組件中想要獲取子組件input的輸入值,和讓input獲取焦點父組件import { Button } from antd-mobile import Son from "./components/son"; import { useState,useRef } fro…

Unity 用AI自動開發游戲----Cursor研究(實現一套利用Cursor生成模板快速實現原型的框架)

Unity 快速原型開發框架(基于 Cursor AI) 🧩 框架簡介 本框架結合了 AI 編程助手 Cursor 的代碼生成能力,構建出一套適用于 Unity 項目的模塊化原型開發架構。它旨在極大提升開發效率、降低試錯成本,特別適用于快速搭…

D觸發器實現2分頻verilog及電路

使用D觸發器完成2分頻電路即通過時鐘的上升沿或下降沿到來時進行翻轉得到,信號的兩個狀態所占時間長度相同,因此它的輸出時鐘的占空比為50%。 D觸發器實現2分頻的電路圖如下所示:通過將D觸發器2分頻電路級聯,可實現輸入時鐘的2N倍…

UniApp完美對接RuoYi框架開發企業級應用

UniApp完美對接RuoYi框架的完整方案及可開發系統類型,結合企業級實踐與開源項目經驗整理而成,涵蓋技術對接、系統設計及實戰案例。 🔧 一、UniApp與RuoYi對接全流程 1. 后端配置(RuoYi-Vue/RuoYi-Cloud) 跨域支持 在網…

【通識】深度學習理論基礎

1. 深度學習導論 導論和簡介的基礎知識和路徑。 深度學習的各項涵蓋范圍:深度學習MLPs,然后是機器學習、邏輯回歸,知識基礎等等 1)連結神經網絡等等:Cybernetics控制論,Connectionism連結主義&#xff0…

sql-labs(11-12)-萬能密碼登錄

sql-labs(11-12)萬能密碼登錄 第十一關: 這關是一個登陸口,也是一個sql注入的漏洞,也就是常說的萬能密碼。 在輸入框賬號密碼種分別輸入 1’ 和1’ 頁面會報錯。后臺使用的單引符號進行的拼接。賬號輸入1’ or ‘1’‘1 密碼輸入 1’ or …

MsSql 其他(2)

???????????????Mysql中的MVCC 一、MVCC 的核心目標與設計背景 MVCC(Multi-Version Concurrency Control,多版本并發控制) 是 InnoDB 存儲引擎為實現高并發事務處理而設計的核心機制。其核心目標是:在不犧牲事務隔…

解決本地部署n8n,域名訪問為什么一直有connection lost的報錯

問題:本地部署的n8n服務用IP訪問一切都正常,但是使用域名后報錯connection lost思路:首先懷疑是ngnix配置問題或者是docker中的環境問題查看docker logsOrigin header does NOT match the expected origin. (Origin: "nxxx.online:1181&…