取消
顯示的結果
而不是尋找
你的意思是:

日誌堵塞了錯誤消息(OSError: [Errno 95]操作不支持,——日誌錯誤- - -)

Kaijser
新的貢獻者二世

我現在遇到這個問題一段時間發生的每次運行觸發。我發現兩件事:

1)如果我運行腳本集群上不活躍和集群由預定的觸發激活(不是手動!)這不會發生和日誌工作正常,並保存到Azure blob存儲。

2)第一預定的觸發連續運行的集群上給一個好的日誌,任何觸發後,導致大量的錯誤信息為每個日誌和實際日誌文件沒有保存/更新後這是第一次觸發。

我用下麵的代碼來阻擋任何額外的日誌汙染我的日誌:

logging.getLogger (py4j.java_gateway) .setLevel (logging.ERROR) logging.getLogger (py4j) .setLevel (logging.ERROR) logging.getLogger (pyspark) .setLevel (logging.ERROR)日誌記錄。basicConfig(=日誌級別。信息,格式= " % (asctime) s [% (levelname) s]: %(消息)年代”,datefmt =“Y % - % - % d % H: % m: % s % z”,處理程序= [logging.StreamHandler (), TimedRotatingFileHandler(文件名= LOGGING_DIR /”測試。日誌”=“H”,間隔= 1,backupCount = 5,編碼= " utf - 8 ")])記錄器= logging.getLogger ()

但是每一行記錄結果在下麵的錯誤消息類似於1:

2023-03-13 19:46:23 + 0000[信息]:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -本地運行:假- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -日誌錯誤- - -回溯(最近的電話最後):文件“/ usr / lib / python3.8 /日誌/ __init__。py”, 1089行,在發出self.flush()文件“/ usr / lib / python3.8 /日誌/ __init__。py”, 1069行,在衝洗self.stream.flush () OSError: [Errno 95]操作不支持調用堆棧:文件”/磚/ python_shell /腳本/ PythonShell。py”, 29日,<模塊> launch_process()文件”/磚/ python_shell /腳本/ PythonShellImpl。py”, 1234行,在launch_process shell.executor.run()文件”/磚/ python_shell /腳本/ PythonShellImpl。py”, 268行,在運行self.shell.shell.run_cell (cmd, command_id store_history = True)文件”/磚/ python_shell /腳本/ PythonShellImpl。py”, 756行,在run_cell超級(IPythonShell,自我).run_cell (raw_cell store_history,沉默,shell_futures)文件“/磚/ python / lib / python3.8 /網站/ IPython /核心/ interactiveshell。py”, 2894行,在run_cell結果=自我。_run_cell(文件“/磚/ python / lib / python3.8 /網站/ IPython /核心/ interactiveshell。py”, 2940行,在_run_cell返回運動員(重複)文件“/磚/ python / lib / python3.8 /網站/ IPython /核心/ async_helpers。py”, 68行,在_pseudo_sync_runner coro.send(沒有)文件“/磚/ python / lib / python3.8 /網站/ IPython /核心/ interactiveshell。py”, 3165行,在run_cell_async has_raised =等待self.run_ast_nodes (code_ast.body cell_name,文件“/磚/ python / lib / python3.8 /網站/ IPython /核心/ interactiveshell。py”, 3357行,在run_ast_nodes如果(等待self.run_code(代碼,結果,async_ =容易)):文件”/磚/ python / lib / python3.8 /網站/ IPython /核心/ interactiveshell。py”, 3437行,run_code exec (code_obj,自我。user_global_ns self.user_ns)文件<命令- 2200642500323014 >,第107行,在<模塊> logger.info (“{: - ^ 100}”.format (f在本地運行:{RUN_LOCAL}))的信息:“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -本地運行:錯誤- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”參數:()

摘要:日誌這些汙染”——日誌錯誤——“不保存信息和日誌本身。日誌隻適用如果集群活動,激活一個預定的觸發,然後被釋放了。在連續運行的集群,隻有第一個計劃引發的結果在正常運行日誌記錄和保存了文件,但任何除此之外不工作。

如果有人能幫我解決這個問題,那就太好了。我有一些大型項目運行和沒有任何日誌我的公司會不高興。日誌模塊和腳本本地運行時工作。

4回複4

匿名
不適用

@Aaron Kaijser:

你看到的錯誤消息顯示,有一個問題與文件處理程序用於寫日誌。具體地說,它看起來像流處理器用來寫日誌控製台是可以的,但是

TimedRotatingFileHandler時遇到一個問題試圖寫入日誌文件。這個錯誤的一個可能原因是,日誌文件的路徑不是從磚集群訪問。檢查日誌文件的路徑是正確的,磚集群允許寫入指定的位置。

另一個可能性是日誌文件被另一個進程被鎖,防止TimedRotatingFileHandler寫作。這可能發生,如果另一個進程打開日誌文件,例如。你可以試著修改日誌配置處理程序使用不同的文件,如文件句柄,看看這個問題仍然存在。

最後,值得注意的是,寫文件係統不是一個推薦辦法登錄數據磚。磚提供了一種日誌API,您可以使用對集群的司機日誌,日誌消息存儲在一個中央位置,從磚可以訪問UI。使用磚日誌API,您可以替換文件處理程序在你的日誌配置數據磚特定的處理程序,如databricks.logging.JsonFileHandler。

Kaniz
社區經理
社區經理

嗨@Aaron Kaijser(客戶),我們沒有收到你自從上次反應@Suteja卡努裏人(客戶),我檢查看看她的建議幫助你。

否則,如果你有任何解決方案,請與社區分享,因為它可以幫助別人。

同時,請別忘了點擊“選擇最佳”按鈕時提供的信息幫助解決你的問題。

Vidula_Khanna
主持人
主持人

嗨@Aaron Kaijser

希望一切都好!隻是想檢查如果你能解決你的問題,你會很高興分享解決方案或答案標記為最佳?其他的請讓我們知道如果你需要更多的幫助。

我們很想聽到你的聲音。

謝謝!

納娑
貢獻者

嗨@Aaron Kaijser

你能你的日誌文件ADLS嗎?如果是,請解釋你是如何做到的

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map