簡體   English   中英

Spark Cassandra及資源分配

[英]Spark Cassandra and resource allocation

我的理解是默認的spark.cassandra.input.split.size_in_mb是64MB。這意味着為從Cassandra讀取數據而創建的任務數將是Approx_table_size/64。 假設表大小為 6400 MB(我們只是讀取數據,執行 foreachPartition 並將數據寫回數據庫),因此任務數將為 100。但是在 YARN 上執行作業時,如果我專門設置- -num-executors 3 , --executor-cores 2 ,所以這應該為作業創建最多 6 個任務。 現在 conf 設置會在執行時覆蓋 100 個任務的 input.split.size 值嗎? 或者,在讀取數據時會創建 100 個任務,但之后分區將減少到 6 個,並且會發生數據混洗。

首先要提到的是 - spark.cassandra.input.split.size_in_mb是默認值,但如果您有 Cassandra 個分區大於該值,那么 Spark 分區的大小將是 Cassandra 分區的大小,而不是該設置的值。

關於處理 - 不是真的。 Spark Cassandra 連接器將創建 100 個 Spark 分區,這些分區將由 Spark 使用可用核心 ( 6 ) 處理,因此這意味着它將重復代碼 17 次 (6*16 + 4),因為在 Spark 中每個分區由單核。 僅當您明確執行.repartition時才會發生洗牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM