大家好,我是Edison。
最近需要用到ElasticSearch,於是想要系統學習瞭解下,於是這就開始啦。
什麼是ElasticSearch?
ElasticSearch是一款開源的分佈式搜索分析引擎,它可以提供近實時(Near Real Time)的分佈式存儲/搜索/分析引擎服務。
起源:Lucene
ElasticSearch起源於Lucene,Lucene是一個基於Java開發的搜索引擎類庫,創建於1999年,於2005年成爲Apache頂級開源項目。Lucene具有高性能和易擴展的優點,但也有一定的侷限性:只能基於Java開發,學習曲線陡峭,原生不支持水平擴展等。
重生:ElasticSearch
2004年Shay Banon基於Lucene開發了Compass,2010年Shay Banon重寫了Compass,並改名爲ElasticSearch,它完美解決了Lucene的侷限!
ElasticSearch支持分佈式,可水平擴展,且降低了全文檢索的學習曲線,可以被任何編程語言調用。
ElasticSearch的主要功能
ElasticSearch主要提供了三大核心功能:
(1)海量數據的分佈式存儲以及集羣管理
服務和數據的高可用,水平擴展
(2)近實時搜索,性能卓越
結構化 / 全文 / 地理位置 / 自動完成
(3)海量數據的近實時分析
聚合功能
支持多種方式集成接入
ElasticSearch提供了多種方式進行接入:
(1)多種編程語言類庫,如Java/.NET/Python/PHP等;
(2)RESTful API v.s Transport API
(3)JDBC & ODBC
ElasticStack 生態圈
ElasticStack目前有如下圖所示的成熟生態圈:
- Logstash:數據處理管道,支持從不同來源採集數據並轉換數據,最後將數據發送到不同的存儲庫中。
- Beats:輕量級的數據採集器,如Filebeat、Packetbeat、Winlogbeat、Metricbeat、Heartbeat等。
- Kibana:可視化分析利器,幫助我們解開對數據的任何疑問,強大的數據展示能力。
- X-Pack:商業化套件,也就是付費用戶專享了,有OSS、Basic、黃金版 和 白金版幾個License類別。
ELK 應用場景
我們常常所聽到的ELK其實是ElasticSearch + Logstach + Kibana的組合縮寫,ELK被廣泛的應用在下面這幾個應用場景中:
(1)網站搜索 / 垂直搜索 / 代碼搜索
(2)日誌管理與分析 / 安全指標監控 / 應用性能監控
其中,日誌管理與分析 可能是大家最熟悉的應用場景,因爲日誌對應用系統來說太重要了,它就像是醫生給病人看病,日誌就是病人對自己的陳述。
小結
本篇,我們瞭解了ElasticSearch是什麼,它有什麼樣的特點,提供了什麼主要的功能 以及 ELK的主要應用場景。至今,ElasticSearch已有超過2.5億的下載量,不僅有良好的開發者社區,更有大量的互聯網公司使用案例。
下一篇,我們就搭建一個ElasticSearch,並進行簡單的配置,玩起來!
參考資料
極客時間,阮一鳴,《ElasticSearch核心技術與實戰》