elasticsearch啟動詳解

一、elasticsearch啟動命令

elasticsearch是通過命令行方式啟動的,執行命令前需要確保Java環境已經安裝。啟動命令如下:

./bin/elasticsearch

啟動過程大致分為以下幾個步驟:

1、首先會檢查JVM參數是否正確;

2、其次會檢查配置文件是否正確;

3、然後會創建日誌文件;

4、接著啟動elasticsearch服務;

5、最後開始監聽埠並對外提供服務。

二、elasticsearch啟動卡住了

有時候我們在啟動elasticsearch時可能會遇到卡住的情況,通常這種情況是由於JVM參數設置不當、硬體資源不足或其他未知原因造成的。遇到這種情況需要先檢查一下JVM的日誌,看看是不是有什麼異常信息。

另外,我們還可以通過增加JVM內存大小來解決這個問題,JVM內存的配置文件為elasticsearch.yml,將下面的參數值調大即可。

    bootstrap.memory_lock: true
    discovery.type: single-node
    ES_JAVA_OPTS: "-Xms4g -Xmx4g"

三、elasticsearch啟動使用root

通常情況下我們不應該以root用戶啟動elasticsearch,因為elasticsearch使用root許可權啟動會存在安全問題,而且我們也不需要root許可權來啟動elasticsearch。如果實在無法避免使用root許可權啟動,可以在啟動命令前加上sudo。

sudo ./bin/elasticsearch

四、elasticsearch啟動報錯

在啟動elasticsearch時可能會遇到各種各樣的報錯,這些報錯信息通常是非常友好的。針對報錯信息可以通過檢查JVM配置、配置文件格式有誤、埠佔用等方面進行排查。

例如下面這個錯誤表示JVM內存不足:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000ccb80000, 273678336, 0) failed; error='Cannot allocate memory' (errno=12)

又例如下面這個錯誤表示配置文件格式有誤:

Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ElasticSearchParseException[Failed to parse the [http.port] setting value [invalid]]; nested: NumberFormatException[For input string: "invalid"];

五、elasticsearch啟動關閉

如果需要關閉elasticsearch,可以直接在終端中按下Ctrl+C。

如果需要遠程關閉elasticsearch,則需要發送一個POST請求到http://localhost:9200/_shutdown,如下所示:

curl -X POST "http://localhost:9200/_shutdown"

六、elasticsearch啟動失敗

如果elasticsearch啟動失敗,可能是由於以下原因導致:

1、JVM啟動參數設置有誤;

2、硬體資源不足;

3、操作系統限制了進程數量;

4、配置文件格式有誤;

5、已有的elasticsearch用戶沒有啟動elasticsearch的許可權。

七、elasticsearch啟動卡住

如果elasticsearch啟動過程中卡住了,我們可以先檢查一下JVM參數是否設置正確,同時也可以查看一下日誌文件,看看是否有什麼異常信息。

如果elasticsearch服務已經在運行了但是管理界面沒有響應,則可能是由於TCP/IP埠被防火牆或其它原因阻塞了。

八、elasticsearch啟動參數

在啟動elasticsearch時我們可以通過傳遞參數來改變默認行為,例如啟動時關閉搜索緩存:

./bin/elasticsearch -E "search.cache.enabled=false"

更多啟動參數可以查看elasticsearch的官方文檔。

九、elasticsearch啟動日誌

elasticsearch啟動時會生成日誌文件,日誌文件地址為logs/elasticsearch.log,在調試過程中可以通過查看日誌文件來了解elasticsearch運行的詳細信息。

十、elasticsearch啟動不了

如果elasticsearch啟動不了,可能是由於硬體資源不足導致的或者操作系統設置了進程數量限制,請先查看JVM內存、硬碟空間是否足夠。

如果硬體資源充足,可以嘗試修改操作系統的限制值,如下所示:

sudo sysctl -w vm.max_map_count=262144

以上是macOS的設置方法,如果是其他操作系統需要查看相關文檔。

總之,elasticsearch啟動過程中遇到問題並不可怕,很多問題都可以通過查看日誌、調整JVM參數、修改配置文件來解決。逐個排查問題,我們相信你一定能順利啟動elasticsearch。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196118.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 09:53
下一篇 2024-12-03 09:53

相關推薦

  • Elasticsearch API使用用法介紹-get /_cat/allocation

    Elasticsearch是一個分散式的開源搜索和分析引擎,支持全文檢索和數據分析,並且可伸縮到上百個節點,處理PB級結構化或非結構化數據。get /_cat/allocation…

    編程 2025-04-28
  • Elasticsearch Scroll Java的使用指南

    本文旨在詳細介紹如何使用Elasticsearch Scroll Java。Elasticsearch Scroll Java是一種高效的遍歷大型數據集的方法。通過它,我們可以逐個…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性感測器,能夠同時測量加速度和角速度。它由三個感測器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25

發表回復

登錄後才能評論