Linux中Elasticsearch的安裝詳細(xì)步驟
一、ES是什么
1.1、ES概念介紹
ES(Elasticsearch)是一種基于Lucene的搜索服務(wù)器,具有實時分布式存儲、搜索和分析引擎的功能。
Elasticsearch是一個高度可擴(kuò)展的開源全文搜索和分析引擎,可以快速地對大數(shù)據(jù)進(jìn)行存儲、搜索和分析。它是基于Java開發(fā)的,作為Apache許可條款下的開放源碼發(fā)布,成為流行的企業(yè)級搜索引擎。
ES不僅具備強(qiáng)大的搜索能力,還支持模糊查詢和相關(guān)性搜索,這使得它在處理大量數(shù)據(jù)時表現(xiàn)出色。相對于傳統(tǒng)數(shù)據(jù)庫,ES能夠更高效地進(jìn)行模糊查詢,因為它內(nèi)部使用倒排索引(inverted index)結(jié)構(gòu),這種結(jié)構(gòu)特別適用于快速的文本搜索。倒排索引將數(shù)據(jù)分詞并建立索引,使得搜索時能夠快速找到相關(guān)文檔,而不是遍歷整個數(shù)據(jù)集。
1.2、技術(shù)架構(gòu)
ES的技術(shù)架構(gòu)是一個高度可擴(kuò)展的分布式系統(tǒng),旨在處理大規(guī)模的數(shù)據(jù)搜索和分析任務(wù)。
ES的底層依賴于Lucene,這是一個高性能、全功能的搜索引擎庫。然而,Lucene的使用門檻較高,需要開發(fā)者具備一定的信息檢索知識,并且直接集成到應(yīng)用程序中。為了簡化這一過程,ES應(yīng)運而生,它使用Java編寫,內(nèi)部采用Lucene進(jìn)行索引和搜索,并提供一套簡單的RESTful API供用戶使用。
在ES的架構(gòu)中,集群不需要依賴任何外部組件即可實現(xiàn)高可用性(HA)。集群中的節(jié)點通過自建的選舉算法來選擇master節(jié)點,無需額外的系統(tǒng)如Zookeeper。
節(jié)點類型:
- Master節(jié)點:負(fù)責(zé)保存和更新集群的元數(shù)據(jù),包括集群配置、節(jié)點信息、索引設(shè)置等。這些信息同步到所有節(jié)點,以保持?jǐn)?shù)據(jù)的一致性。
- Data節(jié)點:負(fù)責(zé)數(shù)據(jù)的存儲和查詢操作。這些節(jié)點實際持有數(shù)據(jù)分片,執(zhí)行數(shù)據(jù)的讀寫操作。
- Coordinator節(jié)點:負(fù)責(zé)路由索引請求和聚合搜索結(jié)果集,以及分發(fā)批量索引請求,起到負(fù)載均衡的作用。
Ingestor節(jié)點:類似于Logstash,用于處理和轉(zhuǎn)換輸入數(shù)據(jù)。
Master選舉:
- 選舉策略:如果集群中已存在master,則認(rèn)可該master;如果不存在,則從具有master資格的節(jié)點中選舉出ID最小的節(jié)點作為master。
- 選舉時機(jī):包括集群啟動時和現(xiàn)有master離開集群時。后臺線程會定時檢測master的狀態(tài),若master異常離開,則會重新進(jìn)行選舉。
- 選舉流程:通過“過半原則”避免腦裂問題,即任何新的master必須得到超過半數(shù)節(jié)點的票數(shù)才能當(dāng)選,確保集群穩(wěn)定性。
數(shù)據(jù)存儲:
- 分片與副本:ES通過分片方式實現(xiàn)數(shù)據(jù)的分布式存儲,每個索引被分成若干個分片,均勻分布在不同節(jié)點上。同時,通過副本分片提高數(shù)據(jù)的可用性和并發(fā)處理能力。
- 寫入過程:數(shù)據(jù)先寫入主分片,成功后異步復(fù)制到副本分片。通過translog保證數(shù)據(jù)的持久性,確保服務(wù)器宕機(jī)時數(shù)據(jù)不丟失。
數(shù)據(jù)查詢:
- 查詢過程:任意節(jié)點都可以作為查詢請求的協(xié)調(diào)節(jié)點,將請求轉(zhuǎn)發(fā)到相關(guān)分片進(jìn)行查詢,最后匯總各個分片的結(jié)果返回給客戶端。
- 負(fù)載均衡:通過合理配置分片數(shù)量和副本數(shù),實現(xiàn)數(shù)據(jù)存儲的負(fù)載均衡和高可用性。
1.2.1、Lucene介紹
Lucene是一個高性能、可擴(kuò)展的開源Java庫,用于實現(xiàn)全文檢索和搜尋功能。
Lucene最初由Doug Cutting開發(fā),他也是Hadoop的創(chuàng)始人之一。作為一個開源項目,Lucene主要由Apache軟件基金會支持,并在Java開發(fā)社區(qū)中廣泛使用。它提供了一個強(qiáng)大的應(yīng)用程序接口(API),允許開發(fā)者在自己的應(yīng)用程序中實現(xiàn)全文索引和搜索功能。
Lucene的核心功能包括全文搜索和索引建立,這兩者是實現(xiàn)高效數(shù)據(jù)檢索的基礎(chǔ)。在全文搜索中,Lucene能夠?qū)Ψ墙Y(jié)構(gòu)化數(shù)據(jù)進(jìn)行快速查找和匹配,這得益于其內(nèi)部使用的“倒排索引”結(jié)構(gòu)。倒排索引是一種數(shù)據(jù)結(jié)構(gòu),通過將文檔內(nèi)容分詞并建立索引,從而快速定位相關(guān)文檔位置,而不需要遍歷整個數(shù)據(jù)集。
索引過程
- 分詞組件(Tokenizer):處理輸入的文檔,將其分解成單詞或詞元(Tokens),去除標(biāo)點符號和停用詞(如英文中的"the"、"an"等)。例如,文章 “Tom lives in Guangzhou, I live in Guangzhou too.” 經(jīng)過分詞后得到的結(jié)果為:[Tom] [lives] [Guangzhou] [I] [live] [Guangzhou]。
- 語言處理組件:對得到的詞元進(jìn)行進(jìn)一步處理,如轉(zhuǎn)換為小寫、詞根還原(reduce to root form)等。處理完的結(jié)果為:[tom] [live] [guangzhou] [i] [live] [guangzhou]。
- 索引組件(Indexer):將處理后的詞構(gòu)建成索引,索引結(jié)構(gòu)包含關(guān)鍵詞、文章號[出現(xiàn)頻率]、出現(xiàn)位置等信息。例如,關(guān)鍵詞 “guangzhou” 可能被存儲為:
關(guān)鍵詞 | 文章號[出現(xiàn)頻率] | 出現(xiàn)位置 |
---|---|---|
guangzhou | 1[2] | 3, 6 |
搜索過程
- 詞典查找:用戶輸入查詢字符串后,Lucene會在詞典中進(jìn)行二元查找,定位到該詞的頻率文件和位置文件。
- 結(jié)果返回:通過指針讀出所有文章號,并在具體文章中根據(jù)出現(xiàn)位置找到該詞,最終返回結(jié)果給用戶。這種索引方式使得Lucene在首次建立索引時可能較慢,但之后的搜索會非常迅速。
Lucene不僅提供強(qiáng)大的索引和搜索能力,還具有高擴(kuò)展性。其索引結(jié)構(gòu)主要采用FST(有限狀態(tài)機(jī))實現(xiàn),這一結(jié)構(gòu)具有查詢速度快、內(nèi)存占用少、結(jié)合內(nèi)存和磁盤存儲的優(yōu)點。這使得Lucene能夠支持大規(guī)模數(shù)據(jù)的檢索,同時在內(nèi)存利用率和查詢速度上都有優(yōu)異表現(xiàn)。
1.3、ES的工作原理
ES(Elasticsearch)的工作原理基于分布式、可擴(kuò)展的架構(gòu)和倒排索引機(jī)制,能夠?qū)崿F(xiàn)高效的數(shù)據(jù)存儲和檢索功能。
- 分布式架構(gòu)
- 節(jié)點類型:ES集群由多個節(jié)點組成,這些節(jié)點可以分成不同的類型,包括Master節(jié)點、Data節(jié)點、Coordinator節(jié)點和Ingestor節(jié)點。Master節(jié)點負(fù)責(zé)保存和更新集群的元數(shù)據(jù)信息,如集群配置、節(jié)點信息、索引設(shè)置等。Data節(jié)點則負(fù)責(zé)數(shù)據(jù)的存儲和查詢操作。
- 分片與副本:為了支持大規(guī)模數(shù)據(jù),ES將索引劃分為多個分片,每個分片可以獨立存儲和處理數(shù)據(jù)。同時,每個分片可以有多個副本,用于提供數(shù)據(jù)冗余、故障恢復(fù)和讀取負(fù)載均衡。
- 數(shù)據(jù)寫入流程
- 內(nèi)存緩沖區(qū)與Translog:當(dāng)文檔被寫入ES時,它們首先被放置在內(nèi)存中的一個緩沖區(qū)中,并同時記錄到事務(wù)日志(Translog)中以確保數(shù)據(jù)的持久性。
- 刷新操作:隨著時間的推移,緩沖區(qū)中的數(shù)據(jù)會積累到一定量,此時需要將這些數(shù)據(jù)刷新(Refresh)到Lucene的索引中,形成新的段(Segment)。刷新操作會創(chuàng)建一個新的Lucene段,并將緩沖區(qū)中的數(shù)據(jù)寫入這個段中。
- Flush操作:與刷新不同,F(xiàn)lush操作會將內(nèi)存中的數(shù)據(jù)以及Translog中的更改持久化到磁盤上。這是通過一個稱為Flush的操作完成的,該操作將所有緩沖的數(shù)據(jù)和Translog內(nèi)容寫入磁盤。
- 數(shù)據(jù)搜索過程
- 倒排索引:ES使用Lucene作為其底層的搜索庫,Lucene構(gòu)建倒排索引來加速搜索過程。倒排索引將文檔中的單詞映射到包含這些單詞的文檔列表,從而實現(xiàn)快速查找和檢索。
- 查詢執(zhí)行:當(dāng)客戶端發(fā)送搜索請求時,請求首先到達(dá)一個協(xié)調(diào)節(jié)點。協(xié)調(diào)節(jié)點解析查詢語句,確定需要訪問的分片,并將請求轉(zhuǎn)發(fā)給相應(yīng)的數(shù)據(jù)節(jié)點。數(shù)據(jù)節(jié)點在本地執(zhí)行查詢,并將結(jié)果返回給協(xié)調(diào)節(jié)點,協(xié)調(diào)節(jié)點聚合來自各個數(shù)據(jù)節(jié)點的結(jié)果,并進(jìn)行排序、分頁等處理,最終將結(jié)果返回給客戶端。
- 倒排索引結(jié)構(gòu)
- 詞條:索引里面最小的存儲和查詢單元,對于英文來說是一個單詞,對于中文則是分詞后的一個詞。
- 詞典:是詞條的集合,記錄單詞到倒排列表的關(guān)聯(lián)關(guān)系,一般通過B+樹或哈希表實現(xiàn)。
- 倒排列表:記錄了單詞對應(yīng)的文檔結(jié)合,由倒排索引項組成,包括文檔ID、詞頻(TF)、位置和偏移信息,用于實現(xiàn)相關(guān)性評分、語句搜索和高亮顯示。
- 數(shù)據(jù)副本機(jī)制
- 同步機(jī)制:一旦文檔被寫入到主分片,主分片會開始將數(shù)據(jù)同步到其對應(yīng)的副本分片上。這個過程是異步進(jìn)行的,因此寫入請求可以在主分片處理完畢后就返回給客戶端。
- 寫入確認(rèn):當(dāng)主分片和足夠數(shù)量的副本分片都成功寫入了文檔后,協(xié)調(diào)節(jié)點會收到確認(rèn)信息并向客戶端發(fā)送成功的響應(yīng)。
ES通過其分布式架構(gòu)、倒排索引機(jī)制以及復(fù)雜的寫入和查詢流程,確保了數(shù)據(jù)的高效存儲和快速檢索。這種設(shè)計不僅提高了系統(tǒng)的可用性和穩(wěn)定性,還帶來了良好的擴(kuò)展性和靈活的配置選項,適應(yīng)了現(xiàn)代大數(shù)據(jù)環(huán)境下的各種復(fù)雜應(yīng)用場景。
1.4、ES的適用場景
全文搜索
- 網(wǎng)站搜索:ES在網(wǎng)站搜索中表現(xiàn)出色,能夠提供快速、準(zhǔn)確的搜索結(jié)果。例如,電商網(wǎng)站的商品搜索功能可以通過ES實現(xiàn),支持對商品名稱、描述、類別等信息的高效檢索。
- 文檔管理系統(tǒng):在文檔管理系統(tǒng)中,ES能夠?qū)崿F(xiàn)對大量文檔的快速搜索和分類。例如,企業(yè)的內(nèi)部知識庫可以通過ES來構(gòu)建,員工可以迅速找到需要的資料。
- 電子商務(wù)搜索:電商平臺通過ES提供強(qiáng)大的商品搜索功能,用戶可以進(jìn)行關(guān)鍵詞搜索、過濾和排序,快速找到所需商品。例如,京東、淘寶和拼多多等電商平臺都使用ES來處理海量商品數(shù)據(jù)的搜索。
實時分析
- 實時監(jiān)控系統(tǒng):ES能夠?qū)崟r處理和分析數(shù)據(jù),適用于實時監(jiān)控系統(tǒng)。例如,企業(yè)的實時銷售數(shù)據(jù)可以通過ES進(jìn)行追蹤和分析,幫助管理層及時調(diào)整銷售策略。
- 業(yè)務(wù)分析:在業(yè)務(wù)分析中,ES提供了低延遲的數(shù)據(jù)存儲和查詢功能,使得企業(yè)能夠?qū)崟r分析業(yè)務(wù)數(shù)據(jù),發(fā)現(xiàn)潛在的機(jī)會和問題。例如,金融行業(yè)可以利用ES進(jìn)行交易數(shù)據(jù)的實時分析和預(yù)警。
- 物聯(lián)網(wǎng)數(shù)據(jù)處理:ES在物聯(lián)網(wǎng)場景中也有廣泛應(yīng)用,能夠處理來自傳感器和設(shè)備的大量實時數(shù)據(jù)。例如,工廠的生產(chǎn)線可以通過ES監(jiān)控設(shè)備狀態(tài),實時分析生產(chǎn)數(shù)據(jù),提高生產(chǎn)效率。
日志和事件數(shù)據(jù)分析
- 系統(tǒng)監(jiān)控:ES常用于系統(tǒng)監(jiān)控,通過收集和分析各種日志數(shù)據(jù),幫助識別系統(tǒng)問題和優(yōu)化系統(tǒng)性能。例如,公司的IT部門可以使用ES構(gòu)建日志分析平臺,實時監(jiān)控服務(wù)器和應(yīng)用程序的運行狀態(tài)。
- 應(yīng)用日志分析:在應(yīng)用日志分析中,ES能夠匯總和分析來自不同來源的應(yīng)用日志,幫助開發(fā)者定位問題和改進(jìn)應(yīng)用。例如,軟件開發(fā)團(tuán)隊可以使用ES分析應(yīng)用的錯誤日志,快速定位并修復(fù)bug。
- 安全事件管理:ES在安全事件管理中也有重要應(yīng)用,能夠收集和分析安全事件數(shù)據(jù),幫助企業(yè)及時發(fā)現(xiàn)和應(yīng)對安全威脅。例如,網(wǎng)絡(luò)安全公司可以使用ES構(gòu)建SIEM(安全信息和事件管理)系統(tǒng),實時監(jiān)測網(wǎng)絡(luò)攻擊和異常行為。
機(jī)器學(xué)習(xí)
- 異常檢測:ES的機(jī)器學(xué)習(xí)功能可以自動檢測數(shù)據(jù)中的異常和異常行為,有助于及時發(fā)現(xiàn)潛在的問題。例如,銀行的信用卡欺詐檢測系統(tǒng)可以通過ES來實現(xiàn),自動識別異常交易行為。
- 預(yù)測維護(hù):在工業(yè)領(lǐng)域,ES的機(jī)器學(xué)習(xí)功能可以用于預(yù)測設(shè)備的維護(hù)需求,減少設(shè)備故障和停機(jī)時間。例如,制造企業(yè)可以利用ES分析設(shè)備的運行數(shù)據(jù),預(yù)測并提前進(jìn)行設(shè)備維護(hù)。
- 用戶行為分析:在用戶行為分析中,ES可以分析用戶的行為數(shù)據(jù),挖掘用戶的興趣和偏好,提升用戶體驗和營銷效果。例如,新聞推薦系統(tǒng)可以利用ES分析用戶的閱讀歷史,推薦感興趣的內(nèi)容。
地理數(shù)據(jù)應(yīng)用
- 地圖服務(wù):ES支持地理空間索引和搜索,可以在地圖服務(wù)中應(yīng)用,提供基于位置的搜索和可視化功能。例如,旅游平臺可以使用ES構(gòu)建地圖搜索功能,幫助用戶查找附近的景點和餐館。
- 物流管理:在物流管理中,ES可以用于優(yōu)化配送路線和調(diào)度。例如,快遞公司可以利用ES實現(xiàn)智能路由規(guī)劃,提高配送效率。
- 位置服務(wù):位置服務(wù)中,ES可以幫助管理和分析大量的地理數(shù)據(jù),提供基于位置的服務(wù)和推薦。例如,共享單車平臺可以使用ES管理車輛的位置信息,優(yōu)化車輛分布和調(diào)度。
安全信息和事件管理
- 網(wǎng)絡(luò)安全監(jiān)控:ES在網(wǎng)絡(luò)安全監(jiān)控中扮演著重要角色,能夠?qū)崟r分析網(wǎng)絡(luò)流量和日志,識別潛在的網(wǎng)絡(luò)威脅。例如,企業(yè)的安全團(tuán)隊可以使用ES構(gòu)建網(wǎng)絡(luò)安全防護(hù)系統(tǒng),實時監(jiān)測并應(yīng)對網(wǎng)絡(luò)攻擊。
- 入侵檢測:在入侵檢測系統(tǒng)中,ES能夠分析各種安全事件數(shù)據(jù),識別異常行為和潛在的入侵行為。例如,金融機(jī)構(gòu)可以使用ES構(gòu)建入侵檢測系統(tǒng),保護(hù)客戶資金和數(shù)據(jù)安全。
- 威脅分析:ES還可以用于威脅分析,幫助安全專家分析復(fù)雜的安全事件,找出潛在的攻擊模式和源頭。例如,可以使用ES分析大量的網(wǎng)絡(luò)情報數(shù)據(jù),識別并防范潛在的恐怖威脅。
二、安裝前的配置
2.1、創(chuàng)建普通用戶
由于ES禁止使用root用戶啟動,需要創(chuàng)建一個普通用戶來運行ES
- 創(chuàng)建一個組
[root@iZbp129gypomkv7w7deqpqZ ~]# groupadd elasticsearch
- 創(chuàng)建一個普通用戶并配置密碼
[root@iZbp129gypomkv7w7deqpqZ ~]# useradd esroot [root@iZbp129gypomkv7w7deqpqZ ~]# passwd esroot Changing password for user esroot. New password: BAD PASSWORD: The password contains the user name in some form Retype new password: passwd: all authentication tokens updated successfully.
- 將新用戶添加到elasticsearch用戶組
[root@iZbp129gypomkv7w7deqpqZ ~]# usermod -G elasticsearch esroot
- 給esroot用戶設(shè)置sudo權(quán)限
在 在root ALL=(ALL) ALL一行下面添加esroot ALL=(ALL) ALL
[root@iZbp129gypomkv7w7deqpqZ /]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL esroot ALL=(ALL) ALL
2.2、調(diào)整文件描述符數(shù)量和虛擬內(nèi)存
[root@iZbp129gypomkv7w7deqpqZ /]# ulimit -n 65536 [root@iZbp129gypomkv7w7deqpqZ /]# ulimit -u 4096
2.3、設(shè)置shell會話的資源限制(軟限制和硬限制)
在文本最后添加下面兩段代碼
[root@iZbp129gypomkv7w7deqpqZ /]# vi /etc/security/limits.conf shcms soft nofile 65536 shcms hard nofile 65536
2.4、增加虛擬內(nèi)存的設(shè)置
添加vm.max_map_count=262144
[root@iZbp129gypomkv7w7deqpqZ /]# vi /etc/sysctl.conf vm.swappiness = 0 kernel.sysrq = 1 vm.max_map_count=262144 net.ipv4.neigh.default.gc_stale_time = 120 # see details in https://help.aliyun.com/knowledge_detail/39428.html net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 # see details in https://help.aliyun.com/knowledge_detail/41334.html net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0
2.5、使虛擬內(nèi)存配置立即生效
[root@iZbp129gypomkv7w7deqpqZ /]# sysctl -p vm.swappiness = 0 kernel.sysrq = 1 vm.max_map_count = 262144 net.ipv4.neigh.default.gc_stale_time = 120 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0
三、ES安裝
3.1、下載與解壓
- 創(chuàng)建一個software文件夾
[root@iZbp129gypomkv7w7deqpqZ home]# mkdir software
- 下載
[root@iZbp129gypomkv7w7deqpqZ software]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz --2024-08-11 14:56:47-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz Resolving artifacts.elastic.co (artifacts.elastic.co)... 34.120.127.130, 2600:1901:0:1d7:: Connecting to artifacts.elastic.co (artifacts.elastic.co)|34.120.127.130|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 296454172 (283M) [application/x-gzip] Saving to: ‘elasticsearch-7.6.1-linux-x86_64.tar.gz' 100%[================================================================================================================================================>] 296,454,172 6.65MB/s in 37s 2024-08-11 14:57:25 (7.56 MB/s) - ‘elasticsearch-7.6.1-linux-x86_64.tar.gz' saved [296454172/296454172]
- 解壓
[root@iZbp129gypomkv7w7deqpqZ software]# mkdir /opt/es [root@iZbp129gypomkv7w7deqpqZ software]# ls /opt es [root@iZbp129gypomkv7w7deqpqZ software]# tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/es/ elasticsearch-7.6.1/ elasticsearch-7.6.1/lib/ elasticsearch-7.6.1/lib/elasticsearch-7.6.1.jar elasticsearch-7.6.1/lib/elasticsearch-x-content-7.6.1.jar elasticsearch-7.6.1/lib/elasticsearch-cli-7.6.1.jar elasticsearch-7.6.1/lib/elasticsearch-core-7.6.1.jar elasticsearch-7.6.1/lib/elasticsearch-secure-sm-7.6.1.jar elasticsearch-7.6.1/lib/elasticsearch-geo-7.6.1.jar elasticsearch-7.6.1/lib/lucene-core-8.4.0.jar
3.2、配置文件修改
- 需要先切換到esroot用戶
[root@iZbp129gypomkv7w7deqpqZ /]# su - esroot [esroot@iZbp129gypomkv7w7deqpqZ ~]$
- 創(chuàng)建log和data目錄
[esroot@iZbp129gypomkv7w7deqpqZ ~]$ sudo mkdir -p /opt/es/elasticsearch-7.6.1/log [sudo] password for esroot: [esroot@iZbp129gypomkv7w7deqpqZ ~]$ sudo mkdir -p mkdir -p /opt/es/elasticsearch-7.6.1/data [esroot@iZbp129gypomkv7w7deqpqZ ~]$ ls /opt/es/elasticsearch-7.6.1/ bin config data jdk lib LICENSE.txt log logs modules NOTICE.txt plugins README.asciidoc [root@iZbp129gypomkv7w7deqpqZ ~]# cd /opt/es/elasticsearch-7.6.1/config [root@iZbp129gypomkv7w7deqpqZ config]# ls elasticsearch.yml jvm.options log4j2.properties role_mapping.yml roles.yml users users_roles [root@iZbp129gypomkv7w7deqpqZ config]# rm -rf elasticsearch.yml [root@iZbp129gypomkv7w7deqpqZ config]# ls jvm.options log4j2.properties role_mapping.yml roles.yml users users_roles [root@iZbp129gypomkv7w7deqpqZ config]# vi elasticsearch.yml [root@iZbp129gypomkv7w7deqpqZ config]# cat elasticsearch.yml cluster.name: my-cluster node.name: my-node path.data: /opt/es/elasticsearch-7.6.1/data path.logs: /opt/es/elasticsearch-7.6.1/log network.host: 0.0.0.0
- cluster.name: my-cluster:這是設(shè)置集群名稱,用于標(biāo)識這個 Elasticsearch 集群。所有的節(jié)點都將共享這個名稱。
- node.name: my-node:這是設(shè)置每個節(jié)點的名稱。在集群中,每個節(jié)點都需要一個唯一的名稱,以便能夠相互識別
- path.data: /opt/es/elasticsearch-7.6.1/data:這是設(shè)置數(shù)據(jù)文件的存儲路徑。Elasticsearch 將使用這個路徑來存儲索引和快照
- path.logs: /opt/es/elasticsearch-7.6.1/log:這是設(shè)置日志文件的存儲路徑。Elasticsearch 將使用這個路徑來存儲日志文件
- network.host: 0.0.0.0:這是設(shè)置節(jié)點的網(wǎng)絡(luò)主機(jī)。這意味著節(jié)點將監(jiān)聽所有網(wǎng)絡(luò)接口。這對于分布式環(huán)境中的節(jié)點是必要的,因為它們需要能夠與其他節(jié)點通信
jvm.options文件可以根據(jù)自己的實際情況修改配置:-Xms2g 是一個 Java 虛擬機(jī)(JVM)選項,用于設(shè)置Java堆的初始大小(最小值)。在這個例子中,初始堆大小被設(shè)置為 2GB(2048MB)。
3.3、依賴安裝
ES的某些版本對JDK有特定要求,需要確保系統(tǒng)中JDK的版本與ES版本兼容。ES 7.x以上通常內(nèi)置了JDK環(huán)境,不需要本地JDK支持。如果需要指定JDK版本,可以在ES的bin目錄中修改elasticsearch腳本,設(shè)置正確的JAVA_HOME路徑。
- 安裝java環(huán)境
[root@iZbp129gypomkv7w7deqpqZ yum.repos.d]# vi CentOS-Base.repo [root@iZbp129gypomkv7w7deqpqZ yum.repos.d]# cat CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirror.centos.org/centos/$releasever/os/$basearch/mirror.lst #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever enabled=1 failovermethod=priority baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7 [root@iZbp129gypomkv7w7deqpqZ yum.repos.d]# yum clean all Loaded plugins: fastestmirror Cleaning repos: base epel extras mysql-connectors-community mysql-tools-community mysql57-community updates Cleaning up list of fastest mirrors [root@iZbp129gypomkv7w7deqpqZ yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors [root@iZbp129gypomkv7w7deqpqZ /]# yum install java-11-openjdk-devel [root@iZbp129gypomkv7w7deqpqZ /]# source /etc/profile [esroot@iZbp129gypomkv7w7deqpqZ /]$ vi /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
3.4、啟動ES服務(wù)
[esroot@iZbp129gypomkv7w7deqpqZ /]$ su esroot [esroot@iZbp129gypomkv7w7deqpqZ /]$ cd /opt/es/elasticsearch-7.6.1/bin [esroot@iZbp129gypomkv7w7deqpqZ /]$ ./elasticsearch
總結(jié)
到此這篇關(guān)于Linux中Elasticsearch安裝詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Linux中ES安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot熱加載jar實現(xiàn)動態(tài)插件的思路
本文主要介紹在 Spring Boot 工程中熱加載 jar 包并注冊成為 Bean 對象的一種實現(xiàn)思路,在動態(tài)擴(kuò)展功能的同時支持在插件中注入主程序的 Bean 實現(xiàn)功能更強(qiáng)大的插件2021-10-10淺談常用Java數(shù)據(jù)庫連接池(小結(jié))
這篇文章主要介紹了淺談常用Java數(shù)據(jù)庫連接池(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Java設(shè)計模式之橋接模式詳解(Bridge Pattern)
橋接模式是一種結(jié)構(gòu)型設(shè)計模式,旨在將抽象部分與其實現(xiàn)部分分離,從而使兩者可以獨立地變化,橋接模式通過組合關(guān)系代替繼承關(guān)系,將抽象和實現(xiàn)解耦,使代碼更具擴(kuò)展性和維護(hù)性2025-02-02swagger2隱藏在API文檔顯示某些參數(shù)的操作
這篇文章主要介紹了swagger2隱藏在API文檔顯示某些參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢
這篇文章主要介紹了使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03SpringBoot+docker環(huán)境變量配置詳解
這篇文章主要介紹了SpringBoot+docker環(huán)境變量配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10java.math.BigDecimal的用法及加減乘除計算
這篇文章主要介紹了java.math.BigDecimal的用法及加減乘除計算,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05