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