Invoking stop() from shutdown hook
时间: 2024-04-02 12:31:28 浏览: 12
这是一个关于 Java 中的 Shutdown Hook 的问题。当 JVM 开始关闭时,会执行注册的 Shutdown Hook。如果在 Shutdown Hook 中调用 stop() 方法,那么意味着强制停止正在运行的线程。这可能会导致一些未定义的行为,因此不建议在 Shutdown Hook 中调用 stop() 方法。通常建议在 Shutdown Hook 中执行一些清理工作,如关闭网络连接、关闭文件句柄等。
相关问题
Invoking stop() from shutdown hook 2023-06-08 20:00:25,905 INFO (AbstractConnector.java:318)- Stopped Spark@4978bcd5{HTTP/1.1,[http/1.1]}{0.0.0.0:4040} 2023-06-08 20:00:25,906 INFO (Logging.scala:54)- Stopped Spark web UI at http://DESKTOP-UN228O4:4040 2023-06-08 20:00:25,919 INFO (Logging.scala:54)- MapOutputTrackerMasterEndpoint stopped! 2023-06-08 20:00:25,929 INFO (Logging.scala:54)- MemoryStore cleared 2023-06-08 20:00:25,929 INFO (Logging.scala:54)- BlockManager stopped 2023-06-08 20:00:25,935 INFO (Logging.scala:54)- BlockManagerMaster stopped 2023-06-08 20:00:25,937 INFO (Logging.scala:54)- OutputCommitCoordinator stopped! 2023-06-08 20:00:25,950 INFO (Logging.scala:54)- Successfully stopped SparkContext 2023-06-08 20:00:25,950 INFO (Logging.scala:54)- Shutdown hook called 2023-06-08 20:00:25,951 INFO (Logging.scala:54)- Deleting directory C:\Users\HUAWEI\AppData\Local\Temp\spark-87e84c73-3cf7-4db0-bf7d-ab42db0a5a54
这段日志是SparkContext成功停止并退出的日志。在Spark应用程序运行结束时,SparkContext会调用一个shutdown hook来清理资源和关闭SparkContext。这个过程中,Spark会停止web UI、MapOutputTrackerMasterEndpoint、MemoryStore、BlockManager、BlockManagerMaster、OutputCommitCoordinator等组件,并删除临时目录。
如果你看到这个日志,说明你的Spark应用程序已经正常结束了,不需要再进行其他操作。如果你想在Spark应用程序结束后进行其他操作,可以通过在Spark应用程序中添加shutdown hook来实现。这个shutdown hook会在SparkContext关闭之前被调用,可以用来清理资源、关闭连接等操作。
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.sql.functions$.to_timestamp(Lorg/apache/spark/sql/Column;Ljava/lang/String;)Lorg/apache/spark/sql/Column; at org.example.Cleaning$.main(Cleaning.scala:32) at org.example.Cleaning.main(Cleaning.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:736) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 23/06/11 20:06:43 INFO spark.SparkContext: Invoking stop() from shutdown hook
这个错误是由于在你的代码中调用了 `org.apache.spark.sql.functions.to_timestamp` 方法,但是该方法不存在或者版本不兼容所致。你需要检查你的代码,确定你所使用的 Spark 版本和相关依赖的版本是否与你的代码兼容。如果你使用的是 Spark 2.x 版本,则应该使用 `org.apache.spark.sql.functions.unix_timestamp` 方法代替 `to_timestamp` 方法。如果你使用的是 Spark 3.x 版本,则应该确保你的代码中引用的 Spark 依赖的版本与你的代码相匹配。