當ES趕超Redis,這份ES進修攻略不容錯過

從4月DB-Engines最新發布的全球數據庫排名中,我們赫然發現ElasticSearch逆襲超越了Redis

,從原先的第9名上升至第8名,而Redis則落後一名,排在了其後。

當ES趕超Redis,這份ES進修攻略不容錯過

事實上,這場逆襲並不算太讓人意外。近幾個月,ElasticSearch發展勢頭良好,排名穩固前進,業界對其關注度與研究熱情都在逐漸增漲。可以預見,ElasticSearch或將成為未來一段時間數據庫相關從業人員新的技術焦點。

獨家專訪INTERVIEW

許鵬

攜程機票大數據基礎平臺Leader

《Apache Spark源碼剖析》作者

Q1:關於學習ElasticSearch的切入

——眾所周知,ElasticSearch是基於Apache Lucene的開源搜索和分析引擎。那麼,學習ElasticSearch必須先從Lucene學起嗎?

A:ElasticSearch的底層基石確實是Lucene,但學習的切入點可以有多種,不一定非要從Lucene開始學起。簡要列一下不同需求下的學習建議:

  • 應用開發,首先了解ElasticSearch的搜索和分析語法,掌握ElasticSearch特有的DSL和相應的API;

  • 集群運維,除了應用開發的內容之外,還需要了解Lucene的基本概念。對Lucene的學習有助於集群的合理配置以及在遇到實際問題時的錯誤排查。

Q2:關於ElasticSearch的優勢與不足

——與Solr等同類產品相比,ElasticSearch有哪些優勢與不足?

A:ElasticSearch比Solr出生得晚,但是很快就超越Solr成為分佈式搜索引擎的Top 1, 原因有不少,個人認為值得關注的是:

優勢:

  • ElasticSearch開箱即用,部署簡單,沒有對第三方應用的依賴,SolrCloud依賴於ZooKeeper;

  • ElasticSearch的查詢語法簡單易懂,降低了使用門檻。當然,對於“是使用Json還是Lucene的原生查詢語法”確有爭議,對於一般用戶來說,過於精簡的語法可能會使學習曲線變陡;

  • ElasticSearch支持數據分片自平衡,SolrCloud要到最近的版本才支持;

  • ElasticSearch的生態鏈完整,比如ELK形成完整的Ingest→Search→Visualization數據管道;

  • ElasticSearch的受眾群龐大,擁有廣泛的使用案例。

不足:

  • ElasticSearch最大的不足在於開源參與方面,誠然ElasticSearch的核心模塊是開源的,但是除了Elastic公司的員工之外,其它人是無法提交Patch或新功能的,而Solr或者Lucene是任何人都可以提交Patch,只要通過鬆散形式的委員會的認可,就可以提交到主分支。

Q3:關於ElasticSearch是否能代替NoSQL

——既然除了搜索、監控以外,ElasticSearch還能用作數據存儲,那麼將來是否可以用它來替代NoSQL(如:MongoDB、HBase)?

A:ElasticSearch不能代替MongoDB和HBase,因為解決的痛點不同。ElasticSearch主要解決快速搜索問題,但在支持事務以及一致性方面做得還不夠,特別是如果要從ElasticSearch中導出大量數據會非常緩慢。

以下是常見大數據系統所要解決問題的簡要彙總。

當ES趕超Redis,這份ES進修攻略不容錯過

Q4:關於對ElasticSearch的展望

——隨著智能時代的到來,機器學習正引領著各行各業發展變革,而利用ElasticSearch,機器學習可進行更智能的搜索和分析。對此,您有什麼看法或展望?

A:通過分析Elastic公司在X-Pack這一產品中封裝了哪些內容,我們可以大概瞭解ElasticSearch的發展重點。

X-Pack中有機器學習部分的內容,可以看出僅僅把ElasticSearch作為一個搜索引擎是不夠的,還需要在此基礎上加入數據的應用部分。

每家公司的具體業務是不同的,但是Elastic公司希望用戶依然停留在ElasticSearch這個技術棧上,所以他們推出了機器學習功能,讓ElasticSearch有一站式解決的能力。

從用戶的角度來看,不建議將ElasticSearch作為機器學習框架的優選目標,而是將其與其它的機器學習框架和計算引擎結合。

Q5:關於學習ElasticSearch的建議

——可以預見,ElasticSearch在今後很長一段時間裡將會是愈加受到重視與重用的技術之一,那麼您對希望入門或熟練運用ElasticSearch的朋友有什麼學習或就業建議?

A:ElasticSearch解決的最大痛點是海量數據下搜索困難,所以ElasticSearch在大數據的解決方案中佔有一席之地是不爭的事實。這也意味著任何一家提供大數據服務的組織都需要這方面能力的人員。

ElasticSearch的運維和開發涉及到的點比較多,在技術上要深入瞭解可以多從這幾個層面來入手:

  • 學習過程中多看幾遍ElasticSearch Reference的內容,瞭解Lucene Index、Segments、ElasticSearch Index、Shard這些基本概念之間的聯繫與區別;

  • 瞭解ElasticSearch是如何解決數據的分佈問題;

  • 瞭解數據的寫入和讀取過程;

  • 瞭解集群的管理,包括擴容、縮容、版本升級;

  • 瞭解如何監控和管理一箇中型規模的集群,瞭解可能出現問題的點會在哪,做到心中有數;

  • 瞭解如何與常見的流數據處理引擎(如Apache Flink、Storm)和分佈式分析引擎(Apache Spark)相對接;

  • 當然可能的話,多瞭解一些JVM及OS對於集群運維也會大有裨益。

更多ElasticSearch分享

方式一:4月21日,許鵬老師將以《ElasticSearch運維實戰》為主題,在2018 Gdevops全球敏捷運維峰會-成都站上進行演講,分享知識經驗,交流研究心得。

方式二:4月22日,也就是峰會隔天,Gdevops誠意推出ElasticSearch全日沉浸式深度課程。許鵬老師也將作為本次課程的講師,以《ElasticSearch從原理到實戰》為課題,與童鞋們展開全天授課與交流!

↓↓ 包含內容 ↓↓

當ES趕超Redis,這份ES進修攻略不容錯過


分享到:


相關文章: