elasticsearch-spark 提供了saveToEs api以支持快速導(dǎo)入數(shù)據(jù)。但es集群線程池有限,在大量寫入數(shù)據(jù)的同時(shí),對(duì)cpu的壓力非常大,影響線上es的查詢服務(wù)。如果能參考hbase 的bulkload方法,對(duì)es也采用“bulkload”模式,寫入性能會(huì)有巨大提升。核心思想是通過spark作業(yè)生成es的lucene文件,并通過網(wǎng)絡(luò)傳輸,寫入es的數(shù)據(jù)文件。
本方案參考滴滴的fastIndex:滴滴FastIndex
采用spark改寫,部分特性適應(yīng)了公司的原始流程,會(huì)有不一樣的地方。如您采用的是spark saveToEs需要通過該方法進(jìn)行改寫,可參考。