Linux中Elasticsearch的安裝詳細(xì)步驟
一、ES是什么
1.1、ES概念介紹
ES(Elasticsearch)是一種基于Lucene的搜索服務(wù)器,具有實(shí)時(shí)分布式存儲(chǔ)、搜索和分析引擎的功能。
Elasticsearch是一個(gè)高度可擴(kuò)展的開源全文搜索和分析引擎,可以快速地對(duì)大數(shù)據(jù)進(jìn)行存儲(chǔ)、搜索和分析。它是基于Java開發(fā)的,作為Apache許可條款下的開放源碼發(fā)布,成為流行的企業(yè)級(jí)搜索引擎。
ES不僅具備強(qiáng)大的搜索能力,還支持模糊查詢和相關(guān)性搜索,這使得它在處理大量數(shù)據(jù)時(shí)表現(xiàn)出色。相對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù),ES能夠更高效地進(jìn)行模糊查詢,因?yàn)樗鼉?nèi)部使用倒排索引(inverted index)結(jié)構(gòu),這種結(jié)構(gòu)特別適用于快速的文本搜索。倒排索引將數(shù)據(jù)分詞并建立索引,使得搜索時(shí)能夠快速找到相關(guān)文檔,而不是遍歷整個(gè)數(shù)據(jù)集。
1.2、技術(shù)架構(gòu)
ES的技術(shù)架構(gòu)是一個(gè)高度可擴(kuò)展的分布式系統(tǒng),旨在處理大規(guī)模的數(shù)據(jù)搜索和分析任務(wù)。
ES的底層依賴于Lucene,這是一個(gè)高性能、全功能的搜索引擎庫(kù)。然而,Lucene的使用門檻較高,需要開發(fā)者具備一定的信息檢索知識(shí),并且直接集成到應(yīng)用程序中。為了簡(jiǎn)化這一過程,ES應(yīng)運(yùn)而生,它使用Java編寫,內(nèi)部采用Lucene進(jìn)行索引和搜索,并提供一套簡(jiǎn)單的RESTful API供用戶使用。
在ES的架構(gòu)中,集群不需要依賴任何外部組件即可實(shí)現(xiàn)高可用性(HA)。集群中的節(jié)點(diǎn)通過自建的選舉算法來選擇master節(jié)點(diǎn),無需額外的系統(tǒng)如Zookeeper。
節(jié)點(diǎn)類型:
- Master節(jié)點(diǎn):負(fù)責(zé)保存和更新集群的元數(shù)據(jù),包括集群配置、節(jié)點(diǎn)信息、索引設(shè)置等。這些信息同步到所有節(jié)點(diǎn),以保持?jǐn)?shù)據(jù)的一致性。
- Data節(jié)點(diǎn):負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和查詢操作。這些節(jié)點(diǎn)實(shí)際持有數(shù)據(jù)分片,執(zhí)行數(shù)據(jù)的讀寫操作。
- Coordinator節(jié)點(diǎn):負(fù)責(zé)路由索引請(qǐng)求和聚合搜索結(jié)果集,以及分發(fā)批量索引請(qǐng)求,起到負(fù)載均衡的作用。
Ingestor節(jié)點(diǎn):類似于Logstash,用于處理和轉(zhuǎn)換輸入數(shù)據(jù)。
Master選舉:
- 選舉策略:如果集群中已存在master,則認(rèn)可該master;如果不存在,則從具有master資格的節(jié)點(diǎn)中選舉出ID最小的節(jié)點(diǎn)作為master。
- 選舉時(shí)機(jī):包括集群?jiǎn)?dòng)時(shí)和現(xiàn)有master離開集群時(shí)。后臺(tái)線程會(huì)定時(shí)檢測(cè)master的狀態(tài),若master異常離開,則會(huì)重新進(jìn)行選舉。
- 選舉流程:通過“過半原則”避免腦裂問題,即任何新的master必須得到超過半數(shù)節(jié)點(diǎn)的票數(shù)才能當(dāng)選,確保集群穩(wěn)定性。
數(shù)據(jù)存儲(chǔ):
- 分片與副本:ES通過分片方式實(shí)現(xiàn)數(shù)據(jù)的分布式存儲(chǔ),每個(gè)索引被分成若干個(gè)分片,均勻分布在不同節(jié)點(diǎn)上。同時(shí),通過副本分片提高數(shù)據(jù)的可用性和并發(fā)處理能力。
- 寫入過程:數(shù)據(jù)先寫入主分片,成功后異步復(fù)制到副本分片。通過translog保證數(shù)據(jù)的持久性,確保服務(wù)器宕機(jī)時(shí)數(shù)據(jù)不丟失。
數(shù)據(jù)查詢:
- 查詢過程:任意節(jié)點(diǎn)都可以作為查詢請(qǐng)求的協(xié)調(diào)節(jié)點(diǎn),將請(qǐng)求轉(zhuǎn)發(fā)到相關(guān)分片進(jìn)行查詢,最后匯總各個(gè)分片的結(jié)果返回給客戶端。
- 負(fù)載均衡:通過合理配置分片數(shù)量和副本數(shù),實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的負(fù)載均衡和高可用性。
1.2.1、Lucene介紹
Lucene是一個(gè)高性能、可擴(kuò)展的開源Java庫(kù),用于實(shí)現(xiàn)全文檢索和搜尋功能。
Lucene最初由Doug Cutting開發(fā),他也是Hadoop的創(chuàng)始人之一。作為一個(gè)開源項(xiàng)目,Lucene主要由Apache軟件基金會(huì)支持,并在Java開發(fā)社區(qū)中廣泛使用。它提供了一個(gè)強(qiáng)大的應(yīng)用程序接口(API),允許開發(fā)者在自己的應(yīng)用程序中實(shí)現(xiàn)全文索引和搜索功能。
Lucene的核心功能包括全文搜索和索引建立,這兩者是實(shí)現(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)文檔位置,而不需要遍歷整個(gè)數(shù)據(jù)集。
索引過程
- 分詞組件(Tokenizer):處理輸入的文檔,將其分解成單詞或詞元(Tokens),去除標(biāo)點(diǎn)符號(hào)和停用詞(如英文中的"the"、"an"等)。例如,文章 “Tom lives in Guangzhou, I live in Guangzhou too.” 經(jīng)過分詞后得到的結(jié)果為:[Tom] [lives] [Guangzhou] [I] [live] [Guangzhou]。
- 語(yǔ)言處理組件:對(duì)得到的詞元進(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)鍵詞、文章號(hào)[出現(xiàn)頻率]、出現(xiàn)位置等信息。例如,關(guān)鍵詞 “guangzhou” 可能被存儲(chǔ)為:
關(guān)鍵詞 | 文章號(hào)[出現(xiàn)頻率] | 出現(xiàn)位置 |
---|---|---|
guangzhou | 1[2] | 3, 6 |
搜索過程
- 詞典查找:用戶輸入查詢字符串后,Lucene會(huì)在詞典中進(jìn)行二元查找,定位到該詞的頻率文件和位置文件。
- 結(jié)果返回:通過指針讀出所有文章號(hào),并在具體文章中根據(jù)出現(xiàn)位置找到該詞,最終返回結(jié)果給用戶。這種索引方式使得Lucene在首次建立索引時(shí)可能較慢,但之后的搜索會(huì)非常迅速。
Lucene不僅提供強(qiáng)大的索引和搜索能力,還具有高擴(kuò)展性。其索引結(jié)構(gòu)主要采用FST(有限狀態(tài)機(jī))實(shí)現(xiàn),這一結(jié)構(gòu)具有查詢速度快、內(nèi)存占用少、結(jié)合內(nèi)存和磁盤存儲(chǔ)的優(yōu)點(diǎn)。這使得Lucene能夠支持大規(guī)模數(shù)據(jù)的檢索,同時(shí)在內(nèi)存利用率和查詢速度上都有優(yōu)異表現(xiàn)。
1.3、ES的工作原理
ES(Elasticsearch)的工作原理基于分布式、可擴(kuò)展的架構(gòu)和倒排索引機(jī)制,能夠?qū)崿F(xiàn)高效的數(shù)據(jù)存儲(chǔ)和檢索功能。
- 分布式架構(gòu)
- 節(jié)點(diǎn)類型:ES集群由多個(gè)節(jié)點(diǎn)組成,這些節(jié)點(diǎn)可以分成不同的類型,包括Master節(jié)點(diǎn)、Data節(jié)點(diǎn)、Coordinator節(jié)點(diǎn)和Ingestor節(jié)點(diǎn)。Master節(jié)點(diǎn)負(fù)責(zé)保存和更新集群的元數(shù)據(jù)信息,如集群配置、節(jié)點(diǎn)信息、索引設(shè)置等。Data節(jié)點(diǎn)則負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和查詢操作。
- 分片與副本:為了支持大規(guī)模數(shù)據(jù),ES將索引劃分為多個(gè)分片,每個(gè)分片可以獨(dú)立存儲(chǔ)和處理數(shù)據(jù)。同時(shí),每個(gè)分片可以有多個(gè)副本,用于提供數(shù)據(jù)冗余、故障恢復(fù)和讀取負(fù)載均衡。
- 數(shù)據(jù)寫入流程
- 內(nèi)存緩沖區(qū)與Translog:當(dāng)文檔被寫入ES時(shí),它們首先被放置在內(nèi)存中的一個(gè)緩沖區(qū)中,并同時(shí)記錄到事務(wù)日志(Translog)中以確保數(shù)據(jù)的持久性。
- 刷新操作:隨著時(shí)間的推移,緩沖區(qū)中的數(shù)據(jù)會(huì)積累到一定量,此時(shí)需要將這些數(shù)據(jù)刷新(Refresh)到Lucene的索引中,形成新的段(Segment)。刷新操作會(huì)創(chuàng)建一個(gè)新的Lucene段,并將緩沖區(qū)中的數(shù)據(jù)寫入這個(gè)段中。
- Flush操作:與刷新不同,F(xiàn)lush操作會(huì)將內(nèi)存中的數(shù)據(jù)以及Translog中的更改持久化到磁盤上。這是通過一個(gè)稱為Flush的操作完成的,該操作將所有緩沖的數(shù)據(jù)和Translog內(nèi)容寫入磁盤。
- 數(shù)據(jù)搜索過程
- 倒排索引:ES使用Lucene作為其底層的搜索庫(kù),Lucene構(gòu)建倒排索引來加速搜索過程。倒排索引將文檔中的單詞映射到包含這些單詞的文檔列表,從而實(shí)現(xiàn)快速查找和檢索。
- 查詢執(zhí)行:當(dāng)客戶端發(fā)送搜索請(qǐng)求時(shí),請(qǐng)求首先到達(dá)一個(gè)協(xié)調(diào)節(jié)點(diǎn)。協(xié)調(diào)節(jié)點(diǎn)解析查詢語(yǔ)句,確定需要訪問的分片,并將請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的數(shù)據(jù)節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)在本地執(zhí)行查詢,并將結(jié)果返回給協(xié)調(diào)節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn)聚合來自各個(gè)數(shù)據(jù)節(jié)點(diǎn)的結(jié)果,并進(jìn)行排序、分頁(yè)等處理,最終將結(jié)果返回給客戶端。
- 倒排索引結(jié)構(gòu)
- 詞條:索引里面最小的存儲(chǔ)和查詢單元,對(duì)于英文來說是一個(gè)單詞,對(duì)于中文則是分詞后的一個(gè)詞。
- 詞典:是詞條的集合,記錄單詞到倒排列表的關(guān)聯(lián)關(guān)系,一般通過B+樹或哈希表實(shí)現(xiàn)。
- 倒排列表:記錄了單詞對(duì)應(yīng)的文檔結(jié)合,由倒排索引項(xiàng)組成,包括文檔ID、詞頻(TF)、位置和偏移信息,用于實(shí)現(xiàn)相關(guān)性評(píng)分、語(yǔ)句搜索和高亮顯示。
- 數(shù)據(jù)副本機(jī)制
- 同步機(jī)制:一旦文檔被寫入到主分片,主分片會(huì)開始將數(shù)據(jù)同步到其對(duì)應(yīng)的副本分片上。這個(gè)過程是異步進(jìn)行的,因此寫入請(qǐng)求可以在主分片處理完畢后就返回給客戶端。
- 寫入確認(rèn):當(dāng)主分片和足夠數(shù)量的副本分片都成功寫入了文檔后,協(xié)調(diào)節(jié)點(diǎn)會(huì)收到確認(rèn)信息并向客戶端發(fā)送成功的響應(yīng)。
ES通過其分布式架構(gòu)、倒排索引機(jī)制以及復(fù)雜的寫入和查詢流程,確保了數(shù)據(jù)的高效存儲(chǔ)和快速檢索。這種設(shè)計(jì)不僅提高了系統(tǒng)的可用性和穩(wěn)定性,還帶來了良好的擴(kuò)展性和靈活的配置選項(xiàng),適應(yīng)了現(xiàn)代大數(shù)據(jù)環(huán)境下的各種復(fù)雜應(yīng)用場(chǎng)景。
1.4、ES的適用場(chǎng)景
全文搜索
- 網(wǎng)站搜索:ES在網(wǎng)站搜索中表現(xiàn)出色,能夠提供快速、準(zhǔn)確的搜索結(jié)果。例如,電商網(wǎng)站的商品搜索功能可以通過ES實(shí)現(xiàn),支持對(duì)商品名稱、描述、類別等信息的高效檢索。
- 文檔管理系統(tǒng):在文檔管理系統(tǒng)中,ES能夠?qū)崿F(xiàn)對(duì)大量文檔的快速搜索和分類。例如,企業(yè)的內(nèi)部知識(shí)庫(kù)可以通過ES來構(gòu)建,員工可以迅速找到需要的資料。
- 電子商務(wù)搜索:電商平臺(tái)通過ES提供強(qiáng)大的商品搜索功能,用戶可以進(jìn)行關(guān)鍵詞搜索、過濾和排序,快速找到所需商品。例如,京東、淘寶和拼多多等電商平臺(tái)都使用ES來處理海量商品數(shù)據(jù)的搜索。
實(shí)時(shí)分析
- 實(shí)時(shí)監(jiān)控系統(tǒng):ES能夠?qū)崟r(shí)處理和分析數(shù)據(jù),適用于實(shí)時(shí)監(jiān)控系統(tǒng)。例如,企業(yè)的實(shí)時(shí)銷售數(shù)據(jù)可以通過ES進(jìn)行追蹤和分析,幫助管理層及時(shí)調(diào)整銷售策略。
- 業(yè)務(wù)分析:在業(yè)務(wù)分析中,ES提供了低延遲的數(shù)據(jù)存儲(chǔ)和查詢功能,使得企業(yè)能夠?qū)崟r(shí)分析業(yè)務(wù)數(shù)據(jù),發(fā)現(xiàn)潛在的機(jī)會(huì)和問題。例如,金融行業(yè)可以利用ES進(jìn)行交易數(shù)據(jù)的實(shí)時(shí)分析和預(yù)警。
- 物聯(lián)網(wǎng)數(shù)據(jù)處理:ES在物聯(lián)網(wǎng)場(chǎng)景中也有廣泛應(yīng)用,能夠處理來自傳感器和設(shè)備的大量實(shí)時(shí)數(shù)據(jù)。例如,工廠的生產(chǎn)線可以通過ES監(jiān)控設(shè)備狀態(tài),實(shí)時(shí)分析生產(chǎn)數(shù)據(jù),提高生產(chǎn)效率。
日志和事件數(shù)據(jù)分析
- 系統(tǒng)監(jiān)控:ES常用于系統(tǒng)監(jiān)控,通過收集和分析各種日志數(shù)據(jù),幫助識(shí)別系統(tǒng)問題和優(yōu)化系統(tǒng)性能。例如,公司的IT部門可以使用ES構(gòu)建日志分析平臺(tái),實(shí)時(shí)監(jiān)控服務(wù)器和應(yīng)用程序的運(yùn)行狀態(tài)。
- 應(yīng)用日志分析:在應(yīng)用日志分析中,ES能夠匯總和分析來自不同來源的應(yīng)用日志,幫助開發(fā)者定位問題和改進(jìn)應(yīng)用。例如,軟件開發(fā)團(tuán)隊(duì)可以使用ES分析應(yīng)用的錯(cuò)誤日志,快速定位并修復(fù)bug。
- 安全事件管理:ES在安全事件管理中也有重要應(yīng)用,能夠收集和分析安全事件數(shù)據(jù),幫助企業(yè)及時(shí)發(fā)現(xiàn)和應(yīng)對(duì)安全威脅。例如,網(wǎng)絡(luò)安全公司可以使用ES構(gòu)建SIEM(安全信息和事件管理)系統(tǒng),實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)攻擊和異常行為。
機(jī)器學(xué)習(xí)
- 異常檢測(cè):ES的機(jī)器學(xué)習(xí)功能可以自動(dòng)檢測(cè)數(shù)據(jù)中的異常和異常行為,有助于及時(shí)發(fā)現(xiàn)潛在的問題。例如,銀行的信用卡欺詐檢測(cè)系統(tǒng)可以通過ES來實(shí)現(xiàn),自動(dòng)識(shí)別異常交易行為。
- 預(yù)測(cè)維護(hù):在工業(yè)領(lǐng)域,ES的機(jī)器學(xué)習(xí)功能可以用于預(yù)測(cè)設(shè)備的維護(hù)需求,減少設(shè)備故障和停機(jī)時(shí)間。例如,制造企業(yè)可以利用ES分析設(shè)備的運(yùn)行數(shù)據(jù),預(yù)測(cè)并提前進(jìn)行設(shè)備維護(hù)。
- 用戶行為分析:在用戶行為分析中,ES可以分析用戶的行為數(shù)據(jù),挖掘用戶的興趣和偏好,提升用戶體驗(yàn)和營(yíng)銷效果。例如,新聞推薦系統(tǒng)可以利用ES分析用戶的閱讀歷史,推薦感興趣的內(nèi)容。
地理數(shù)據(jù)應(yīng)用
- 地圖服務(wù):ES支持地理空間索引和搜索,可以在地圖服務(wù)中應(yīng)用,提供基于位置的搜索和可視化功能。例如,旅游平臺(tái)可以使用ES構(gòu)建地圖搜索功能,幫助用戶查找附近的景點(diǎn)和餐館。
- 物流管理:在物流管理中,ES可以用于優(yōu)化配送路線和調(diào)度。例如,快遞公司可以利用ES實(shí)現(xiàn)智能路由規(guī)劃,提高配送效率。
- 位置服務(wù):位置服務(wù)中,ES可以幫助管理和分析大量的地理數(shù)據(jù),提供基于位置的服務(wù)和推薦。例如,共享單車平臺(tái)可以使用ES管理車輛的位置信息,優(yōu)化車輛分布和調(diào)度。
安全信息和事件管理
- 網(wǎng)絡(luò)安全監(jiān)控:ES在網(wǎng)絡(luò)安全監(jiān)控中扮演著重要角色,能夠?qū)崟r(shí)分析網(wǎng)絡(luò)流量和日志,識(shí)別潛在的網(wǎng)絡(luò)威脅。例如,企業(yè)的安全團(tuán)隊(duì)可以使用ES構(gòu)建網(wǎng)絡(luò)安全防護(hù)系統(tǒng),實(shí)時(shí)監(jiān)測(cè)并應(yīng)對(duì)網(wǎng)絡(luò)攻擊。
- 入侵檢測(cè):在入侵檢測(cè)系統(tǒng)中,ES能夠分析各種安全事件數(shù)據(jù),識(shí)別異常行為和潛在的入侵行為。例如,金融機(jī)構(gòu)可以使用ES構(gòu)建入侵檢測(cè)系統(tǒng),保護(hù)客戶資金和數(shù)據(jù)安全。
- 威脅分析:ES還可以用于威脅分析,幫助安全專家分析復(fù)雜的安全事件,找出潛在的攻擊模式和源頭。例如,可以使用ES分析大量的網(wǎng)絡(luò)情報(bào)數(shù)據(jù),識(shí)別并防范潛在的恐怖威脅。
二、安裝前的配置
2.1、創(chuàng)建普通用戶
由于ES禁止使用root用戶啟動(dòng),需要?jiǎng)?chuàng)建一個(gè)普通用戶來運(yùn)行ES
- 創(chuàng)建一個(gè)組
[root@iZbp129gypomkv7w7deqpqZ ~]# groupadd elasticsearch
- 創(chuàng)建一個(gè)普通用戶并配置密碼
[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會(huì)話的資源限制(軟限制和硬限制)
在文本最后添加下面兩段代碼
[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)建一個(gè)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)識(shí)這個(gè) Elasticsearch 集群。所有的節(jié)點(diǎn)都將共享這個(gè)名稱。
- node.name: my-node:這是設(shè)置每個(gè)節(jié)點(diǎn)的名稱。在集群中,每個(gè)節(jié)點(diǎn)都需要一個(gè)唯一的名稱,以便能夠相互識(shí)別
- path.data: /opt/es/elasticsearch-7.6.1/data:這是設(shè)置數(shù)據(jù)文件的存儲(chǔ)路徑。Elasticsearch 將使用這個(gè)路徑來存儲(chǔ)索引和快照
- path.logs: /opt/es/elasticsearch-7.6.1/log:這是設(shè)置日志文件的存儲(chǔ)路徑。Elasticsearch 將使用這個(gè)路徑來存儲(chǔ)日志文件
- network.host: 0.0.0.0:這是設(shè)置節(jié)點(diǎn)的網(wǎng)絡(luò)主機(jī)。這意味著節(jié)點(diǎn)將監(jiān)聽所有網(wǎng)絡(luò)接口。這對(duì)于分布式環(huán)境中的節(jié)點(diǎn)是必要的,因?yàn)樗鼈冃枰軌蚺c其他節(jié)點(diǎn)通信
jvm.options文件可以根據(jù)自己的實(shí)際情況修改配置:-Xms2g 是一個(gè) Java 虛擬機(jī)(JVM)選項(xiàng),用于設(shè)置Java堆的初始大?。ㄗ钚≈担?。在這個(gè)例子中,初始堆大小被設(shè)置為 2GB(2048MB)。
3.3、依賴安裝
ES的某些版本對(duì)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、啟動(dòng)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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot熱加載jar實(shí)現(xiàn)動(dòng)態(tài)插件的思路
本文主要介紹在 Spring Boot 工程中熱加載 jar 包并注冊(cè)成為 Bean 對(duì)象的一種實(shí)現(xiàn)思路,在動(dòng)態(tài)擴(kuò)展功能的同時(shí)支持在插件中注入主程序的 Bean 實(shí)現(xiàn)功能更強(qiáng)大的插件2021-10-10淺談常用Java數(shù)據(jù)庫(kù)連接池(小結(jié))
這篇文章主要介紹了淺談常用Java數(shù)據(jù)庫(kù)連接池(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Java設(shè)計(jì)模式之橋接模式詳解(Bridge Pattern)
橋接模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,旨在將抽象部分與其實(shí)現(xiàn)部分分離,從而使兩者可以獨(dú)立地變化,橋接模式通過組合關(guān)系代替繼承關(guān)系,將抽象和實(shí)現(xiàn)解耦,使代碼更具擴(kuò)展性和維護(hù)性2025-02-02如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則
正則表達(dá)式正則表達(dá)式是用來指定字符串模式的,可以方便的處理文本信息,這篇文章主要給大家介紹了關(guān)于如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則的相關(guān)資料,需要的朋友可以參考下2022-09-09swagger2隱藏在API文檔顯示某些參數(shù)的操作
這篇文章主要介紹了swagger2隱藏在API文檔顯示某些參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢(shì)
這篇文章主要介紹了使用IDEA將Java/Kotliin工程導(dǎo)出Jar包的正確姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03SpringBoot+docker環(huán)境變量配置詳解
這篇文章主要介紹了SpringBoot+docker環(huán)境變量配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10java.math.BigDecimal的用法及加減乘除計(jì)算
這篇文章主要介紹了java.math.BigDecimal的用法及加減乘除計(jì)算,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05