簡體   English   中英

Spark 作業性能問題

[英]Spark job performance issue

我有以下 DSE 集群配置:

6 nodes with 6 cores/16GB ram for each node.

我的應用程序是使用從 Cassandra DB 讀取數據的 pyspark 構建的。

我們在 cassandra db 320.000.000 行上加載並運行我的 python spark 應用程序,內存和核心都已滿,但出現此錯誤:

Lost task 97.0 in stage 299.0 (TID 14680, 11.218.78.15): java.io.IOException: No space left on device
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:326)
at org.apache.spark.storage.TimeTrackingOutputStream.write(TimeTrackingOutputStream.java:58)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
at net.jpountz.lz4.LZ4BlockOutputStream.flushBufferedData(LZ4BlockOutputStream.java:205)
at net.jpountz.lz4.LZ4BlockOutputStream.write(LZ4BlockOutputStream.java:158)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at org.apache.spark.sql.catalyst.expressions.UnsafeRow.writeToStream(UnsafeRow.java:562)
at org.apache.spark.sql.execution.UnsafeRowSerializerInstance$$anon$2.writeValue(UnsafeRowSerializer.scala:69)
at org.apache.spark.storage.DiskBlockObjectWriter.write(DiskBlockObjectWriter.scala:185)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:150)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:79)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:47)
at org.apache.spark.scheduler.Task.run(Task.scala:86)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:274)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

你可以幫幫我嗎? 我在每個節點上都有大約 20GB。

此異常與節點上的磁盤空間有關。 檢查它並找出剩余的空間,然后檢查您的代碼以考慮您記錄了多少及其磁盤使用情況。 但第一個解決方案是從磁盤中釋放一些空間。 如果檢查發現剩余空間足夠,則檢查spark master上傳的可執行spark job文件所在的空間。 如果您之前提交的作業沒有正常完成並且您的作業文件旁邊的臨時文件保留在用於每次提交作業的臨時目錄中,則更有可能發生這種情況。 那么你有兩個解決方案:

  • 重新啟動您的機器/虛擬機,這會使臨時文件被刪除。
  • 自己找到那些臨時文件並刪除不需要的文件。

當我們在本地模式下運行 spark 時也會出現此錯誤(我在本地模式下運行 spark 查詢時也遇到了同樣的問題),如果您在 yarn 模式下運行 spark,此錯誤可能會得到解決。

暫無
暫無

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

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