簡體   English   中英

為什么啟動流式查詢會導致“ExitCodeException exitCode=-1073741515”?

[英]Why does starting a streaming query lead to "ExitCodeException exitCode=-1073741515"?

一直在嘗試適應新的結構化流,但是一旦我開始.writeStream查詢,它就會一直給我以下錯誤。

知道是什么原因造成的嗎? 如果您在本地和 HDFS 之間拆分檢查點和元數據文件夾,我能找到的最接近的是一個持續的 Spark 錯誤,但是。 在 Windows 10、Spark 2.2 和 IntelliJ 上運行。

17/08/29 21:47:39 ERROR StreamMetadata: Error writing stream metadata StreamMetadata(41dc9417-621c-40e1-a3cb-976737b83fb7) to C:/Users/jason/AppData/Local/Temp/temporary-b549ee73-6476-46c3-aaf8-23295bd6fa8c/metadata
ExitCodeException exitCode=-1073741515: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:582)
    at org.apache.hadoop.util.Shell.run(Shell.java:479)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:773)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:866)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:849)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:733)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:225)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:209)
    at org.apache.hadoop.fs.RawLocalFileSystem.createOutputStreamWithMode(RawLocalFileSystem.java:307)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:296)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:328)
    at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSOutputSummer.<init>(ChecksumFileSystem.java:398)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:461)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:440)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:911)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:892)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:789)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:778)
    at org.apache.spark.sql.execution.streaming.StreamMetadata$.write(StreamMetadata.scala:76)
    at org.apache.spark.sql.execution.streaming.StreamExecution$$anonfun$6.apply(StreamExecution.scala:116)
    at org.apache.spark.sql.execution.streaming.StreamExecution$$anonfun$6.apply(StreamExecution.scala:114)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.sql.execution.streaming.StreamExecution.<init>(StreamExecution.scala:114)
    at org.apache.spark.sql.streaming.StreamingQueryManager.createQuery(StreamingQueryManager.scala:240)
    at org.apache.spark.sql.streaming.StreamingQueryManager.startQuery(StreamingQueryManager.scala:278)
    at org.apache.spark.sql.streaming.DataStreamWriter.start(DataStreamWriter.scala:282)
    at FileStream$.main(FileStream.scala:157)
    at FileStream.main(FileStream.scala)
Exception in thread "main" ExitCodeException exitCode=-1073741515: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:582)
    at org.apache.hadoop.util.Shell.run(Shell.java:479)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:773)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:866)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:849)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:733)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:225)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:209)
    at org.apache.hadoop.fs.RawLocalFileSystem.createOutputStreamWithMode(RawLocalFileSystem.java:307)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:296)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:328)
    at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSOutputSummer.<init>(ChecksumFileSystem.java:398)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:461)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:440)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:911)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:892)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:789)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:778)
    at org.apache.spark.sql.execution.streaming.StreamMetadata$.write(StreamMetadata.scala:76)
    at org.apache.spark.sql.execution.streaming.StreamExecution$$anonfun$6.apply(StreamExecution.scala:116)
    at org.apache.spark.sql.execution.streaming.StreamExecution$$anonfun$6.apply(StreamExecution.scala:114)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.sql.execution.streaming.StreamExecution.<init>(StreamExecution.scala:114)
    at org.apache.spark.sql.streaming.StreamingQueryManager.createQuery(StreamingQueryManager.scala:240)
    at org.apache.spark.sql.streaming.StreamingQueryManager.startQuery(StreamingQueryManager.scala:278)
    at org.apache.spark.sql.streaming.DataStreamWriter.start(DataStreamWriter.scala:282)
    at FileStream$.main(FileStream.scala:157)
    at FileStream.main(FileStream.scala)
17/08/29 21:47:39 INFO SparkContext: Invoking stop() from shutdown hook
17/08/29 21:47:39 INFO SparkUI: Stopped Spark web UI at http://192.168.178.21:4040
17/08/29 21:47:39 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
17/08/29 21:47:39 INFO MemoryStore: MemoryStore cleared
17/08/29 21:47:39 INFO BlockManager: BlockManager stopped
17/08/29 21:47:39 INFO BlockManagerMaster: BlockManagerMaster stopped
17/08/29 21:47:39 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!
17/08/29 21:47:39 INFO SparkContext: Successfully stopped SparkContext
17/08/29 21:47:39 INFO ShutdownHookManager: Shutdown hook called
17/08/29 21:47:39 INFO ShutdownHookManager: Deleting directory C:\Users\jason\AppData\Local\Temp\temporary-b549ee73-6476-46c3-aaf8-23295bd6fa8c
17/08/29 21:47:39 INFO ShutdownHookManager: Deleting directory C:\Users\jason\AppData\Local\Temp\spark-117ed625-a588-4dcb-988b-2055ec5fa7ec

Process finished with exit code 1

實際上,我在本地機器上運行 Spark 單元測試時遇到了同樣的問題。 這是由%HADOOP_HOME%文件夾中的WinUtils.exe失敗引起的:

輸入: %HADOOP_HOME%\bin\winutils.exe chmod 777 %SOME_TEMP_DIRECTORY%

輸出:

winutils.exe - 系統錯誤
由於未找到 MSVCR100.dll,無法繼續執行代碼。
重新安裝程序可能會解決此問題。

在網上沖浪后,我發現了 Steve Loughran 的 winutils 項目的一個問題: Windows 10: winutils.exe doesn't work
特別是它說安裝 VC++ 可再發行包應該可以解決問題(這在我的情況下有效): 如何修復此錯誤“msvcp100.dll is missing”

這是一個窗口問題

程序無法啟動,因為您的計算機缺少 MSVCP100.dll。 嘗試重新安裝程序以解決此問題。

您將需要安裝 VC++ 可再發行包:

  • 從微軟官方下載中心下載 Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package

https://www.microsoft.com/en-au/download/details.aspx?id=26999

下載提供了 x86 和 x64 軟件包的選項。

就我而言,我使用的是 Windows 10,並且必須更改環境變量->用戶變量

TMPTEMP到其他卷(D:\Temp 或 E:\Temp 等)中的自定義位置,而不是默認位置

%USERPROFILE%\AppData\Local\Temp

並設置 HADOOP_HOME

System.setProperty(“hadoop.home.dir”,“$HADOOP_HOME\winutils-master\hadoop-2.xx”)

不要忘記將hadoop.dll復制到C:\Windows\System32

您可以從此鏈接下載相應的版本。 下載WINUTILS.exe

對我來說hadoop-2.7.1版本解決了這個問題。

將 DataFrame 轉換為 Parquet 文件時出現的問題。 它將創建目錄,但失敗並顯示“ExitCodeException exitCode=-1073741515”。

我在 Windows 10(2004 版)上從 Intellij 2020.2.2 x64 運行 Spark。 我在我的 C 盤上的 GitBash 中安裝了 spark-3.0.1-bin-hadoop3.2。 從這個倉庫https://github.com/steveloughran/winutils重定向后,我從這個 Github 倉庫https://github.com/cdarlint/winutils下載了 winutils。

我將它們安裝在 C:\winutils 目錄(頂級)中,該目錄包含一個名為 /bin/ 的子目錄,其中包含 winutil.exe 和相關文件。 此頂級路徑作為 Windows 環境變量添加到名為 HADOOP_HOME 的系統變量中。 我還有一個 SPARK_HOME 到 C:\Users\name\spark-3.0.1-bin-hadoop3.2\ 的變量

我收到了這個錯誤,直到我在上面找到這個 SO 帖子和 Moises Trelles 的答案,還有這個頁面https://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_repair/how-do-i -fix-this-error-msvcp100dll-is-missing/c167d686-044e-44ab-8e8f-968fac9525c5?auth=1

我有一個 64 位系統,因此按照 answers.microsoft.com 答案中的建議安裝了 x86 和 x64 版本的 msvcp100.dll。 我沒有重新啟動,但我確實關閉了 Intellij 並重新加載,重新運行后,生成了正確的輸出(鑲木地板文件)。 祝你好運! 我非常感謝 stackoverflow/google/internet/community 的樂於助人的人。

正如其他人指出的那樣, WinUtils似乎依賴於一個名為msvcr100.dll的文件,該文件包含在 Microsoft Visual C++ 2010 Redistributable Package 中。

帶有exitCode= -1073741515ExitCodeException表明您的計算機上不存在mscvr100.dll文件,因此WinUtils無法正常工作。

要解決此問題,請從以下位置安裝可再發行包(帶有 Service Pack 1):

微軟下載中心

請注意,可再發行組件的更高版本(例如 2012、2013 ...)似乎不包含所需的msvcr100.dll文件。

我通過安裝https://www.microsoft.com/en-au/download/details.aspx?id=26999解決了這個問題,然后復制了 hadoop.dll和 winutils.exe

對我來說..以上@Moises Trelles 解決方案有效。 我剛剛從https://www.microsoft.com/en-au/download/details.aspx?id=26999安裝了 vcredist_x64.exe。 它奏效了

有了這個,我不得不在 C:\hadoop271\bin 中復制 64 位 Winutils.exe
如果有任何子文件夾,那么它的問題(即 C:\hadoop271\sub\bin\ --> 這會產生問題或我)

非常感謝stackoverflow

暫無
暫無

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

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