回覆列表
-
1 # 程式技術員
-
2 # 愛笑的TAo
elasticsearch在實現搜尋服務前需要建立索引,並且把資料來源的資料整合到索引中。一般可用java編寫程式碼實現_bulk整合資料,不過效率一般。透過spark可以實現從資料來源到es索引的資料整合過程,效率很高。更高階的用法是,瞭解es當時底層lucene的原理,可以使用spark替換es的搜尋方式,提高搜尋效率。
spark core
實現了spark的基本功能、包括任務排程、記憶體管理、錯誤恢復與儲存系統互動等模組。spark core中還包含了對彈性分散式資料集的定義。
spark sqlspark用來操作結構化資料的程式,透過SPARK SQL,我們可以使用SQL或者HIVE(HQL)來查詢資料,支援多種資料來源,比如HIVE表就是JSON等,除了提供SQL查詢介面,還支援將SQL和傳統的RDD結合,開發者可以在一個應用中同時使用SQL和程式設計的方式(API)進行資料的查詢分析。
Spark StreamingSpark提供的對實時資料進行流式計算的元件,比如網頁伺服器日誌,或者是訊息佇列都是資料流。
ElasticSearch:是一種搜尋引擎,支援全文檢索,快速查詢Es中的資料。
怎麼使用要根據業務場景來使用。
比如,一些網站日誌資料,我們需要儲存到ElasticSearch裡,Spark有API支援Es的儲存。
EsSpark.savetoJson() 類似這樣的API可以把資料以json的格式存到ES。
當然也可以使用Spark讀取ES中的資料,但是一般來說用java操作ES更方便一些。