【實戰 ES】實戰 Elasticsearch:快速上手與深度實踐-1.3.1單節點安裝(Docker與手動部署)

👉 點擊關注不迷路
👉 點擊關注不迷路
👉 點擊關注不迷路


文章大綱

  • 10分鐘快速部署`Elasticsearch`單節點環境
    • 1. 系統環境要求
      • 1.1 硬件配置推薦
      • 1.2 軟件依賴
    • 2. `Docker`部署方案
      • 2.1 部署流程
      • 2.2 參數說明
      • 2.3 性能優化建議
    • 3. 手動部署方案
      • 3.1 安裝步驟
      • 3.2 核心配置項
      • 3.3 啟動服務
    • 4. 部署方式對比
    • 5. 驗證安裝結果
      • 5.1 基礎健康檢查
      • 5.2 性能測試
    • 6. 常見問題排查
      • 6.1 啟動失敗問題
      • 6.2 性能優化檢查表

10分鐘快速部署Elasticsearch單節點環境


1. 系統環境要求

1.1 硬件配置推薦

組件開發環境生產環境
CPU2核8核+
內存4GB32GB+
磁盤50GB HDD1TB SSD RAID
網絡1Gbps10Gbps

1.2 軟件依賴

  • 可在Windows電腦安裝虛擬機,完成環境搭建嘗試。
軟件版本要求備注
OSLinux內核3.0+CentOS/Ubuntu
JavaJDK 17必須LTS版本
Docker20.10+僅容器部署需要
文件系統ext4/xfs推薦使用xfs
  • Java 版本
    • LTS(Long - Term Support,長期支持)版本是由 Oracle 或其他供應商提供長期維護和更新的 Java 版本。這些版本為企業和開發者提供了穩定性和安全性保障,適合需要長期穩定運行的應用程序。
    • 目前的 Java LTS 版本有 Java 8、Java 11 和 Java 17 等。
      -

2. Docker部署方案

2.1 部署流程

# 創建數據目錄
mkdir -p /data/es/{data,logs}# 拉取官方鏡像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.0# 啟動容器
docker run -d \--name elasticsearch \-p 9200:9200 \-p 9300:9300 \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \-v /data/es/data:/usr/share/elasticsearch/data \-v /data/es/logs:/usr/share/elasticsearch/logs \--ulimit nofile=65535:65535 \docker.elastic.co/elasticsearch/elasticsearch:8.9.0

2.2 參數說明

參數作用說明
discovery.type指定單節點模式
ES_JAVA_OPTSJVM堆內存設置(建議1:1)
ulimit nofile文件描述符限制
9200端口REST API端口
9300端口節點通信端口
  • es.discovery.type
    • Elasticsearch 中,es.discovery.type 是一個用于配置節點發現機制的重要參數。節點發現機制決定了 Elasticsearch 集群中的節點如何相互找到并組成一個集群。
    • 通過設置不同的 es.discovery.type 值,可以實現不同的發現方式,以適應不同的部署環境和需求。
      在這里插入圖片描述

2.3 性能優化建議

# 修改docker-compose.yml配置
services:elasticsearch:deploy:resources:limits:memory: 4genvironment:- bootstrap.memory_lock=true- thread_pool.write.queue_size=1000

3. 手動部署方案

3.1 安裝步驟

# 下載安裝包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-linux-x86_64.tar.gz# 解壓文件
tar -zxvf elasticsearch-8.9.0-linux-x86_64.tar.gz
cd elasticsearch-8.9.0/# 創建專用用戶
useradd elastic -s /bin/bash
chown -R elastic:elastic .# 修改系統配置
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p# 修改配置文件
vi config/elasticsearch.yml

3.2 核心配置項

# 定義 Elasticsearch 集群的名稱。
# 同一集群內的所有節點必須使用相同的集群名稱,以便它們能夠識別并加入到同一個集群中。
# 這里將集群名稱設置為 my-es-cluster。
cluster.name: my-es-cluster# 指定當前 Elasticsearch 節點的名稱。
# 節點名稱在集群中應該是唯一的,方便在管理和監控集群時識別不同的節點。
# 此節點的名稱被設置為 node-1。
node.name: node-1# 設置 Elasticsearch 存儲數據文件的路徑。
# 所有的索引數據、分片數據等都會存儲在這個目錄下。
# 這里指定為 /var/lib/elasticsearch。
path.data: /var/lib/elasticsearch# 設置 Elasticsearch 存儲日志文件的路徑。
# 包含了節點的運行日志、錯誤日志等信息,方便后續的問題排查和監控。
# 這里指定為 /var/log/elasticsearch。
path.logs: /var/log/elasticsearch# 配置 Elasticsearch 節點綁定的網絡地址。
# 0.0.0.0 表示節點將監聽所有可用的網絡接口,允許來自任何網絡的連接。
# 可以根據實際需求修改為特定的 IP 地址。
network.host: 0.0.0.0# 設置 Elasticsearch 提供 HTTP 服務的端口號。
# 客戶端通過這個端口與 Elasticsearch 進行 HTTP 通信,例如執行索引、查詢等操作。
# 這里將端口設置為 9200。
http.port: 9200# 配置節點的發現類型。
# single-node 表示該節點將作為單節點集群運行,不會嘗試發現其他節點。
# 適用于開發和測試環境。
discovery.type: single-node# 啟用 Elasticsearch 的 X-Pack 安全功能。
# 開啟后,會提供身份驗證、授權、加密等安全特性,增強集群的安全性。
# 設置為 true 表示啟用該功能。
xpack.security.enabled: true

3.3 啟動服務

su elastic
bin/elasticsearch -d# 生成密碼(首次啟動后)
bin/elasticsearch-reset-password -u elastic

4. 部署方式對比

對比維度Docker部署手動部署
部署速度<2分鐘5-10分鐘
環境隔離完全隔離依賴系統環境
升級維護鏡像替換即可需手動更新文件
資源占用增加約200MB容器開銷直接使用系統資源
安全性依賴容器安全策略可深度定制安全配置
適用場景快速驗證/開發測試生產環境/深度定制

5. 驗證安裝結果

5.1 基礎健康檢查

curl -XGET "http://localhost:9200/_cluster/health?pretty"# 預期輸出
{"cluster_name" : "my-es-cluster","status" : "green","number_of_nodes" : 1
}

5.2 性能測試

# 使用壓測工具
ab -n 1000 -c 10 http://localhost:9200/# 典型性能指標
| QPS       | 平均響應時間 | 錯誤率 |
|-----------|--------------|--------|
| 850 req/s | 11ms         | 0%     |
  • ab 是 Apache HTTP 服務器自帶的一個性能測試工具,全稱為 ApacheBench。它可以用于對 HTTP 服務器進行壓力測試,幫助開發者和運維人員評估服務器在不同負載下的性能表現,比如處理請求的能力、響應時間等。
    • -n 1000:指定要執行的請求總數為 1000 次。也就是說,ab 工具會向目標服務器發送 1000 個 HTTP 請求。
    • -c 10:設置并發請求數為 10。意味著在同一時間內,ab 會同時向服務器發送 10 個請求,以此模擬多個用戶同時訪問服務器的場景。
  • 運行該命令后,ab 會輸出一系列測試結果,其中一些重要的指標包括:
    • 吞吐率(Requests per second):表示服務器每秒能夠處理的請求數量,數值越高說明服務器處理請求的能力越強。
    • 平均響應時間(Time per request):包含了每個請求的平均處理時間,能反映出服務器的響應速度。
    • 傳輸速率(Transfer rate):指服務器每秒傳輸的數據量。
    • 示例輸出片段及解釋
      Concurrency Level:      10
      Time taken for tests:   1.234 seconds
      Complete requests:      1000
      Failed requests:        0
      Total transferred:      123456 bytes
      HTML transferred:       111111 bytes
      Requests per second:    810.36 [#/sec] (mean)
      Time per request:       12.340 [ms] (mean)
      Time per request:       1.234 [ms] (mean, across all concurrent requests)
      Transfer rate:          98.76 [Kbytes/sec] received
      
      • Concurrency Level:并發請求數,這里是 10。
      • Time taken for tests:完成所有請求測試所花費的總時間,為 1.234 秒。
      • Complete requests:成功完成的請求數量,這里 1000 個請求都成功完成。
      • Failed requests:失敗的請求數量,這里為 0。
      • Requests per second:服務器每秒處理的請求數,平均為 810.36 個。
      • Time per request:平均每個請求的處理時間,分別展示了單個請求視角和所有并發請求視角下的時間。

6. 常見問題排查

6.1 啟動失敗問題

錯誤現象解決方案
無法綁定端口檢查防火墻/SELinux狀態
內存不足調整JVM堆大小
文件權限錯誤遞歸修改目錄屬主
虛擬內存不足修改vm.max_map_count

6.2 性能優化檢查表

    1. JVM堆內存設置為物理內存的50%
    1. 禁用swap分區
    1. 數據目錄使用SSD存儲
    1. 配置合理的日志滾動策略
    1. 啟用bootstrap.memory_lock
    • bootstrap.memory_lockElasticsearch 中的一個重要配置項,用于控制 Elasticsearch 節點是否鎖定其堆內存,防止堆內存被交換到磁盤的交換空間(swap)中。
      • 在 Elasticsearch 中,堆內存的使用非常關鍵,尤其是在處理大量數據和復雜查詢時。
      • 如果堆內存被交換到磁盤上(即發生了內存交換,swap),會嚴重影響 Elasticsearch 的性能,因為磁盤 I/O 比內存訪問要慢得多。這可能導致查詢響應時間變長、吞吐量下降,甚至可能引發節點不穩定或崩潰

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

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

相關文章

小程序中的插槽(Slot)機制及其與 Vue 組件的異同

小程序中的插槽&#xff08;Slot&#xff09;機制及其與 Vue 組件的異同 引言 在小程序開發中&#xff0c;組件化開發是一種重要的設計模式&#xff0c;而插槽&#xff08;Slot&#xff09;機制則是實現組件內容分發的關鍵。通過插槽&#xff0c;開發者可以更靈活地構建可復用…

vscode下載安裝教程(附安裝包)vscode圖文安裝教程最新版

文章目錄 一、vscode下載二、vscod安裝教程1.啟動vscode安裝程序&#xff1a;2.應對提示&#xff1a;3.接受協議&#xff1a;4.更改vscode安裝路徑&#xff1a;5.推進安裝vscode&#xff1a;6.創建vscode快捷方式&#xff1a;7.開始安裝vscode&#xff1a;8.完成vscode安裝&…

Redis 緩存穿透、擊穿、雪崩:問題與解決方案

在使用 Redis 作為緩存中間件時&#xff0c;系統可能會面臨一些常見的問題&#xff0c;如 緩存穿透、緩存擊穿 和 緩存雪崩。這些問題如果不加以解決&#xff0c;可能會導致數據庫壓力過大、系統響應變慢甚至崩潰。本文將詳細分析這三種問題的起因&#xff0c;并提供有效的解決…

智能客服進化論:AI呼叫中心系統如何重塑企業服務競爭力?

導語&#xff1a;當客戶咨詢量激增300%時&#xff0c;你的客服團隊還能從容應對嗎&#xff1f; 在數字化轉型加速的今天&#xff0c;企業客戶服務正經歷從"人力密集型"向"智能集約化"的質變。AI呼叫中心系統作為這場變革的核心引擎&#xff0c;已幫助超過…

異常c/c++

目錄 1.c語言傳統處理錯誤方式 1、終止程序 2、返回錯誤碼 2.c異常概念 3.異常的使用 3.1異常的拋出與捕獲 3.2異常安全&#xff08;還有一些異常重新拋出&#xff09; 3.3異常規范 4.自定義異常體系 5.c標準庫的異常體系 6.異常優缺點 1、優點 2、缺點 7、補充 1.…

ChatGPT 提示詞框架

作為一個資深安卓開發工程師&#xff0c;我們在日常開發中經常會用到 ChatGPT 來提升開發效率&#xff0c;比如代碼優化、bug 排查、生成單元測試等。 但要想真正發揮 ChatGPT 的潛力&#xff0c;我們需要掌握一些提示詞&#xff08;Prompt&#xff09;的編寫技巧&#xff0c;并…

面試基礎---JVM 運行時數據區

深入理解 JVM 運行時數據區&#xff1a;從源碼到實踐 在現代互聯網大廠的開發環境中&#xff0c;Java 依然是主流語言之一&#xff0c;而 Java 虛擬機&#xff08;JVM&#xff09;作為 Java 程序運行的基礎&#xff0c;其性能和穩定性直接關系到應用的表現。因此&#xff0c;深…

PostgreSQL 查看數據庫及表中數據占用空間大小

1、應用場景 場景1&#xff1a;查看數據庫占用空間大小 SELECT pg_size_pretty(pg_database_size(database_name));場景2&#xff1a;查看每張表占用空間大小 SELECTtable_schema || . || table_name AS table,#僅表數據pg_size_pretty(pg_relation_size(table_schema || . …

c++中打印任意類型任意長度數組的各種方式

目錄 一、代碼 二、詳細解釋 1. print 函數模板 2. array_size 函數模板 3. print1 函數模板 4. print2 函數模板 5. my_begin 和 my_end 函數模板 6. print3 函數模板 7. main 函數 總結 一、代碼 如下代碼給出了5種方式打印任意類型任意長度的數組。這段代碼定義了…

ubuntu下r8125網卡重啟丟失修復案例一則

剛裝的一臺服務器&#xff0c;ubuntu24.04&#xff0c;主板網卡是r8125&#xff0c;安裝服務后會莫名其妙丟失驅動 按照官網的方法下載最新8125驅動包&#xff1a; Realtek 然后卸載驅動 rmmod r8125 然后在驅動包里安裝&#xff08;幸好我之前裝了build-essential&#x…

[Python學習日記-84] 進程理論

[Python學習日記-84] 進程理論 簡介 進程的概念 并發與并行的區別 進程并發的實現 簡介 進程理論是計算機科學中一種重要的概念&#xff0c;用來描述操作系統中執行的程序實例。在操作系統中&#xff0c;每個程序的執行被稱為一個進程。進程理論研究進程的創建、調度、通信…

云創智城YunCharge 新能源二輪、四輪充電解決方案(云快充、萬馬愛充、中電聯、OCPP1.6J等多個私有單車、汽車充電協議)之新能源充電行業系統說明書

云創智城YunCharge 新能源充電行業系統說明書 ?官方文檔 ?官網地址 1. 引言 隨著全球環境保護和能源危機的加劇&#xff0c;新能源汽車行業得到了快速發展&#xff0c;充電基礎設施建設也隨之蓬勃發展。新能源充電行業系統旨在提供高效、便捷的充電服務&#xff0c;滿足電…

OpenWebUI配置異常的外部模型導致頁面無法打開

一、使用Ollama關閉OpenAI OpenWebUI自帶OpenAI的API設置&#xff0c;且默認是打開的&#xff0c;默認情況下&#xff0c;啟動后&#xff0c;會不斷的去連https://api.openai.com/v1&#xff0c;但是無法連上&#xff0c;會報錯&#xff0c;但是不會影響頁面&#xff0c;能正常…

RuntimeWarning: invalid value encountered in scalar power在進行標量的冪運算時遇到了無效值

year_profit ((profit / initial_cash) ** (1 / yy) - 1) * 100 RuntimeWarning: invalid value encountered in scalar power 這個警告表示在執行標量冪運算 ((profit / initial_cash) ** (1 / yy) - 1) * 100 時遇到了無效值。常見的引發原因及解決辦法如下&#xff1a; ###…

計算機畢業設計 ——jspssm506Springboot 的舊物置換網站

&#x1f4d8; 博主小檔案&#xff1a; 花花&#xff0c;一名來自世界500強的資深程序猿&#xff0c;畢業于國內知名985高校。 &#x1f527; 技術專長&#xff1a; 花花在深度學習任務中展現出卓越的能力&#xff0c;包括但不限于java、python等技術。近年來&#xff0c;花花更…

Kafka消費者相關

Kafka生產者相關-CSDN博客 消費者消費數據基本流程 package com.hrui;import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache…

【軟考-架構】備戰2025軟考

新老教材對比 科目1&#xff08;信息系統綜合&#xff09;考點詳解 科目2&#xff08;系統架構設計案例&#xff09;考點詳解 科目3&#xff08;系統架構設計論文&#xff09;考點詳解 趨于越來越具體 學習方法推薦 第一階段 – 基礎知識階段 建議一個半月&#xff1b; 先過…

MMW-1碳棒磨損機設計

摘 要 為了更好的測量在一定壓力下碳棒的磨損量&#xff0c;提高碳棒磨損量的測量精度&#xff0c;本文設計了一種MMW-1碳棒磨損機&#xff0c;該碳棒磨損機屬于柱盤式摩擦磨損試驗機的一種。該機器主要用于做和碳棒有關的摩擦磨損試驗&#xff0c;可以更準確的獲得相關的參數…

網絡運維學習筆記(DeepSeek優化版)005網工初級(HCIA-Datacom與CCNA-EI)鏈路層發現協議與VLAN技術

文章目錄 一、鏈路層發現協議1.1 思科CDP協議1.2 華為LLDP協議 二、VLAN&#xff08;Virtual Local Area Network&#xff0c;虛擬局域網&#xff09;技術詳解2.1 基本概念2.2 技術特性2.3 接口工作原理2.3.1 Access模式2.3.2 Trunk模式 2.4 廠商配置對比思科配置華為配置 2.5 …

SOME/IP-SD -- 協議英文原文講解5

前言 SOME/IP協議越來越多的用于汽車電子行業中&#xff0c;關于協議詳細完全的中文資料卻沒有&#xff0c;所以我將結合工作經驗并對照英文原版協議做一系列的文章。基本分三大塊&#xff1a; 1. SOME/IP協議講解 2. SOME/IP-SD協議講解 3. python/C舉例調試講解 5.1.2.5 S…