1.寫入demo,詳情看官網- elasticsearch for apache hadoop
給filesystem cache更多的記憶體
用bulk批量寫入
使用多執行緒將資料寫入es
增加refresh間隔
關閉wal事務日誌
其他優化案例:使用spark將hive的資料同步到es
常用優化策略
bulk批量寫入
sparksession spark = sparksession.
builder()
.config
("es.batch.size.entries"
,"5000"
)//設定批寫入的bulk數量,預設1000條
.config
("es.batch.size.bytes"
,"2.5mb"
)//設定批寫入的bulk大小(設定小於10mb),預設1mb;和上面引數協作,兩者誰先滿足,則觸發bulk write
.config
("es.batch.write.refresh"
,"false"
)//關閉批寫入後主動重新整理索引的操作,預設是true
.enablehivesupport()
.getorcreate()
;
使用多執行緒將資料寫入es
增加refresh間隔
//關閉refresh
settings settings = settings.
builder()
//refresh重新整理時間,預設1s;設定為-1表示關閉
.put
("index.refresh_interval"
,"-1").
build()
;//手動呼叫refresh
refreshrequest refreshrequest =
newrefreshrequest
(index)
; client.
indices()
.refresh
(refreshrequest, requestoptions.default)
;
其他的優化 es的寫入過程
建立 c reate elasticsearch集群中的每個節點都包含了改節點上分片的元資料資訊。協調節點 預設 使用文件id參與計算,以便為路由提供合適的分片。elasticsearch使用murmurhash3函式對文件id進行雜湊,其結果再對分片數量取模,得到的結果即是索引文件的分片。shar...
es 插入很慢 ES批量寫入很慢
cpu e5 8核 2.5g 硬碟 企業sata 記憶體 32g settings number of shards 1 number of replicas 0 refresh interval 60s translog sync interval 60s durability async flu...
spark效能優化
熟悉spark核心之後,深刻體會到了spark開發中存在著大量細節左右著計算效能。趁著剛看過大概的流程,先基於目前的感受和相關資料,總結一下可能存在優化空間的地方。spark優化其實就是將不必要的開銷能省就省。建立rdd是昂貴的,從磁碟讀取rdd也是昂貴的,需要大量的io開銷,shuffle是與基於...