elasticsearch spark部分引數理解

2021-10-24 17:19:32 字數 1214 閱讀 1039

es.nodes.wan.only: false

es.nodes.discovery: true

spark會通過訪問es.nodes中指定的host(可以為多個) 得到es集群所有開啟http服務節點的ip和port,後續對資料的訪問會直接訪問分片資料所在的節點上(需要保證es集群所有節點都能夠被spark集群訪問到)

es.nodes.wan.only: true

es.nodes.discovery: false或不設定

spark傳送給es的所有請求都需要通過這個節點進行**,效率相對比較低

檢視elasticsearch-spark-20_2.11

org.elasticsearch.hadoop.cfg.settings 原始碼

public boolean getnodesdiscovery() 

public boolean getnodesdataonly()

spark預設寫es的時候refresh的會在每次bulk結束的時候呼叫

我們建議設定為false,有es內部index的 refresh_interval來控制refresh,否則es集群會有大量的執行緒在refesh會帶來很大的cpu和磁碟壓力

es.batch.write.refresh: false 預設是true

控制每次bulk寫入的量

es.batch.size.bytes:1mb 每次bulk寫入文件的大小,預設1mbes.batch.size.entries:1000 每次bulk寫入的文件數,預設是1000

使用者可根據es集群**合理設定

讀相關設定

es.scroll.size: 50, 預設是50 這個值相對來說比較小,可以適當增大至1000-10000es.input.use.sliced.partitions: true 為了提高併發,es會進行scroll-slice進行切分es.input.max.docs.per.partition: 100000 根據這個值進行切分slice

es-spark 讀取 es集群資料的時候,會按照每個分片的總數進行切分做scroll-slice處理:

建議的引數:

es.scroll.size: 2000 //盡量根據文件的大小來選擇es.input.use.sliced.partitions: false

控制需要寫入的文件字段

有時候業務匯入資料的時候,希望有一些欄位不被寫如es,可以設定:

backlog引數理解

listen函式把乙個由socket函式建立的套接字轉換成乙個被動套接字,指示核心接受指向該套接字的連線請求。該套接字也由closed狀態轉換到listen狀態。函式原型 include int listen int sockfd,int backlog 成功返回0,失敗返回 1。listen之後核...

電感引數理解

1.電感的q值 電感的q值,也叫做電感的品質因素,是衡量電感器件的主要引數。指電感器在某一頻率的交流電壓工作下,所呈現的感抗與其等效損耗電阻之比。電感器的q值越高,損耗越小,效率越高。電感的q值與線圈導線的直流電阻 線圈骨架的介質損耗及鐵心 遮蔽罩等引起的損耗等有關。2.電感q值的換算 1 q 2p...

Python引數理解

def power x x 必選引數 return x 2def power x,n 2 n 預設引數 return x n即傳入的引數個數是可變的 def calc numbers numbers 可變引數 print numbers sum 0 for n in numbers sum sum ...