Elastic Search入门:架构说明及Docker方式体验
Elastic Search簡稱ES,是一款在搜索和日志檢索領(lǐng)域極其成功的開源產(chǎn)品,當(dāng)然ES背后的商業(yè)化公司也很成功。很多大的知名品牌,像是SAP、Booking、Ebay都在使用ES,
今天就來實(shí)際使用一下ES這款成功的商業(yè)化產(chǎn)品,并且介紹一下它的特點(diǎn)。
Elastic Search VS Luncence
說到搜索還是要提下Luncence,Luncence基本上可以稱為搜索領(lǐng)域的鼻祖了,是很早期的索引構(gòu)建庫。但是Luncence的主要問題有兩點(diǎn),其一是只支持Java類庫的調(diào)用方式,學(xué)習(xí)和使用門檻很高,其二是Luncence沒有線性擴(kuò)展能力。搜索又是一個幾乎隨業(yè)務(wù)量線性擴(kuò)張的功能,所以是否支持線性拓展資源很重要。
ES其實(shí)是對Luncence的庫的上層封裝,通過Restful的形式可以讓日志的構(gòu)建和檢索等功能更容易在多語言環(huán)境下調(diào)用,做到即使是開發(fā)小白也能快速上手。另外,ES支持線性拓展,使得使用ES的用戶不需要擔(dān)心資源協(xié)調(diào)的問題。
Elastic Search整體架構(gòu)
接下來介紹下ES的各個模塊,從下向上介紹。
(1)?Beat
Beat是一個輕量的數(shù)據(jù)采集器,Beat可以采集各種格式的數(shù)據(jù),比如日志文件、值班、網(wǎng)絡(luò)數(shù)據(jù)等,并且把這些數(shù)據(jù)傳輸?shù)絃ogstash。
(2)Logstash
Logstash是一個服務(wù)端的數(shù)據(jù)管道,能夠從多個數(shù)據(jù)來源采集數(shù)據(jù),完成數(shù)據(jù)轉(zhuǎn)換,然后將數(shù)據(jù)傳輸?shù)紼lastic Search。在Logstash中可以實(shí)現(xiàn)一些數(shù)據(jù)的過濾、轉(zhuǎn)碼等功能,比如把非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化成結(jié)構(gòu)化數(shù)據(jù),比如從IP地址破譯出地理坐標(biāo)。
(3)Elastic Search
Elastic Search主要做數(shù)據(jù)和索引的存儲以及相關(guān)查詢的計(jì)算。
(4)Kibana
Kibana主要是一個數(shù)據(jù)可視化界面,通過可視化的方式展示ES的計(jì)算和索引結(jié)果。
(5)X-Pack
X-Pack是ES內(nèi)部插件,在老的ES版本是收費(fèi)的,在新的版本中很多插件是被開源免費(fèi)使用的。在X-Pack中可以直接使用機(jī)器學(xué)習(xí)、圖關(guān)系、安全相關(guān)的插件。
所以整體的流程如下,先通過Beat采集數(shù)據(jù),然后數(shù)據(jù)通過管道寫到Logstash做一步處理,接著寫到Elastic Search,然后通過Kibana做數(shù)據(jù)的可視化展現(xiàn)。
?
具體操作體驗(yàn)
?接下來就具體體驗(yàn)下ES的功能,當(dāng)然是選擇通過Docker的模式run一下最快。可以參考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
可以選擇通過拉起單一Docker的模式體驗(yàn),也可以通過Docker Compose的方式體驗(yàn)(Docker Compose比較適合構(gòu)建一個分布式ES集群)。我兩個方案都試了試,Docker Compose一堆坑,官方案例都沒跑起來。
具體操作流程如下:
(1)?先Pull一個官方鏡像
?docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2
(2)?接著拉起這個鏡像
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2
(3)這個時候ES的服務(wù)就已經(jīng)跑起來了,Docker化的模式就是如此方便,服務(wù)的本地地址是localhost:9200。
(4)發(fā)送服務(wù)請求到localhost:9200,
curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
可以查到ES服務(wù)的節(jié)點(diǎn)的具體情況。
總結(jié)一下
?
ES基本上是目前業(yè)內(nèi)在搜素和日志檢索領(lǐng)域非常成熟的開源工具,ES有很多豐富的插件,比如Kibana、Logstash,而且ES對于容器化技術(shù)非常擁抱,可以快速的做部署。最后一點(diǎn)是ES的全部功能都可以通過一套標(biāo)準(zhǔn)的RestFul接口去調(diào)用,這個設(shè)計(jì)很方便用戶使用。
?
總結(jié)
以上是生活随笔為你收集整理的Elastic Search入门:架构说明及Docker方式体验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拿到大厂产品经理offer的应届生都是什
- 下一篇: 如何用MLflow做机器学习实验效果比对