Spark 本地程序啓動緩慢問題排查

今天測試spark 本地任務的時候,發現程序每次啓動的時候都要等好久,才能開始正常進入啓動程序,嚴重干擾了Debug的節奏。那就開始把~~

加上Yourkit的啓動參數,其中 tracing 參數表示啓動的時候就開始進行 tracing 級別的CPU profiling,其他幾種 profiling級別可以根據需要調整。

spark.driver.extraJavaOptions    -agentpath:/Applications/YourKit-Java-Profiler-2019.8.app/Contents/Resources/bin/mac/libyjpagent.dylib=exceptions=disable,delay=100,tracing

在這裏插入圖片描述
看下程序啓動的堆棧,發現卡的還是java的net包工具類,順便看了一眼源代碼,那就寫個測試類來測試一下是不是確實是這裏卡掉了。

本地測試程序:

object IpTest extends Logging {
  def main(args: Array[String]): Unit = {
    logInfo("begin getCanonicalHostName")
    val address = InetAddress.getLocalHost
    println(address.getCanonicalHostName)
    logInfo("end getCanonicalHostName")
  }
}
20/03/04 00:21:53 INFO IpTest: begin getCanonicalHostName
192.168.0.194
20/03/04 00:22:23 INFO IpTest: end getCanonicalHostName

測試結果符合預期。

想了一下,看到堆棧最頂層竟然是Inet6AddressImpl 的實現類的問題。

感覺肯定是DNS 解析服務出問題了。
進入路由器,關閉IPv6 無效果。
沒有辦法了,強制在路由器中指定DNS解析服務器,搞定~~
在這裏插入圖片描述

20/03/04 00:51:59 INFO IpTest: begin getCanonicalHostName
192.168.0.194
20/03/04 00:51:59 INFO IpTest: end getCanonicalHostName
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章