[英]How can I increase parallelism with loading large XML file with spark-xml?
[英]Spark and Kafka: how to increase parallelism for producer sending large batch of records improving network usage?
我正在深入了解如何從 Spark 向 Kafka 主題發送(生成)大量記錄。
從文檔中,我可以看到有人試圖在相同工作人員的任務中使用相同的生產者。 當一次發送大量記錄時,網絡將成為瓶頸(以及內存,因為 kafka 會緩沖要發送的記錄)。 所以我想知道提高網絡使用率的最佳配置是什么:
假設我對 1 和 2 的選項如下(來自 Databricks):
為了更好地利用網絡IO,哪個是最好的選擇?
我現在對此的想法,但我不確定,所以我在這里問你:雖然從 CPU 的角度來看(昂貴的計算工作),1)會更好(更多的並發性,更少的洗牌),從從網絡 IO 的角度來看,我寧願使用 2),即使我的整體內核數量較少。
感謝您對此的任何意見。
謝謝你們。
最好的解決方案是讓更多的工人來實現並行(水平擴展)。 DataFrame 必須使用 Kafka 作為接收器的流寫入到 Kafka,如這里所解釋的https://docs.databricks.com/spark/latest/structured-streaming/kafka.html (如果您不想擁有持久流,您可以始終使用選項觸發器一次)。 此外,您可以假設 1 個數據幀分區 = 1cpu,因此您可以另外優化這種方式(但流中的數據塊通常會自動處理它)。
在 Kafka 方面,我想擁有類似於 spark/databricks 工人的分區/代理數量可能會很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.