我可以使用 cmd.exe 中的命令在 Windows 上运行 spark:
set CLASS=org.apache.spark.deploy.SparkSubmit
%SPARK_HOME%\bin\spark-class2.cmd %CLASS% --class "com.sel2in.TstFac" --master local[4] target\scala-2.11\theApp_2.11-1.0.jar
在spark-class2.cmd中要添加远程调试选项:
set JOPTS=
set JOPTS=-agentlib:jdwp=transport=dt_socket,server=y,address=8001,suspend=y,timeout=30
REM set JOPTS=-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=y
REM set JOPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,timeout=3,address=4002
但是设置不起作用。似乎一个程序构建了要构建的实际命令。任何人都能够在其中获得正确的设置选项,因此可以在 Debug模式下运行 spark 命令,像附加任何 Java 进程一样附加到它? (局部单 Spark 模式)
请您参考如下方法:
最后两行很有帮助。
del %LAUNCHER_OUTPUT%
%SPARK_CMD%
所以命令被写入了一个文件。然后该文件被读取、加入并运行! Rem out the 2nd lsat line or add an echo and pause like
复制代码echo %LAUNCHER_OUTPUT%
pause
REM del %LAUNCHER_OUTPUT%
%SPARK_CMD%
或
del %LAUNCHER_OUTPUT%
echo %SPARK_CMD%
pause
%SPARK_CMD%
然后像对其他 Java 程序一样编辑读取命令以添加调试选项。然后从 Eclipse 附加到它。