使用spark java查看對elasticsearch的低寫入次數。Spark +彈性搜索寫入性能問題
下面是使用13.xlarge機ES羣集配置
4 instances each have 4 processors.
Set refresh interval to -1 and replications to '0' and other basic
configurations required for better writing.
火花:
2節點EMR集羣
2 Core instances
- 8 vCPU, 16 GiB memory, EBS only storage
- EBS Storage:1000 GiB
1 Master node
- 1 vCPU, 3.8 GiB memory, 410 SSD GB storage
ES索引具有16個碎片在映射中定義。
運行作業時有以下配置,
executor-memory - 8g
spark.executor.instances=2
spark.executor.cores=4
,並使用
es.batch.size.bytes - 6MB
es.batch.size.entries - 10000
es.batch.write.refresh - false
這個配置,我嘗試加載100萬文件(每個文件的大小1300個字節),因此它每個ES節點的負載爲500條記錄/文檔。
和火花日誌我看到每個任務
-1116 bytes result sent to driver
星火代碼
JavaRDD<String> javaRDD = jsc.textFile("<S3 Path>");
JavaEsSpark.saveJsonToEs(javaRDD,"<Index name>");
而且,當我看着在ES集羣中的所有網絡圖是非常低的,我看EMR不通過網絡發送大量數據。有沒有一種方法可以告訴Spark發送正確數量的數據以加快寫入速度?
OR
有沒有,我很想念來調整任何其他配置。 原因我看到每秒每個實例的500docs更低。有人可以請指導我是什麼這個設置缺少提高我上課寫入性能提前
在你的s3目錄中,你正在閱讀單個文件還是多個文件? –
使用許多文件 – camelBeginner