我想对使用Windows中的命令提示符提交给Spark的应用程序进行远程调试。你能帮我吗?
我可以提供任何Spark启动远程调试端口。
答案 0 :(得分:7)
您始终可以Remote Debugging
使用Spark
和Java/scala
进行dataset
。如果您想使用localmode
检查小Java Debugger
,那么您可以使用步调试器。查看Spark
以及它是如何工作的。
如果您想在Remotemode
中使用spark-submit
特定的调试,那么请查看此链接,它是一步一步的非常好的示例。
要调试驱动程序,您可以将以下内容添加到--driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
命令中。然后将远程调试器设置为连接到启动驱动程序的节点。
port
您可以根据需要自定义debugger
。
在这种情况下,在侦听模式下启动调试器,然后启动spark程序并等待执行程序附加到调试器。将执行程序的数量设置为1或多个执行程序将全部尝试连接到select
id,
firstname,
surname
from
(
select
id,
firstname,
surname,
min(length(firstname)) over (partition by id, surname) as min_length,
max(length(firstname)) over (partition by id, surname) as max_length,
count(distinct substr(firstname, 1, 1))
over (partition by id, surname) as count_distinct_initials
from table1
)
where min_length = 1
and max_length > 1
and count_distinct_initials = 1
order by id, surname, firstname;
,这可能会导致问题。查看上面的示例以获取更多详细信息。
如果您使用的是jetbrains,则可以使用此示例Spark remote debugging
答案 1 :(得分:0)
步骤:
export SPARK_SUBMIT_OPTS = -agentlib:jdwp = transport = dt_socket,server = y,suspend = y,address = 8086
运行spark应用程序
spark-submit --class prueba.SampleRDDTest pruebaTests-1.0-SNAPSHOT.jar
侦听地址为8086的运输dt_socket
在IDE中,监听运行spark应用程序的机器(我使用了docker机器)
JVM的参数:-agentlib:jdwp = transport = dt_socket,server = y,suspend = n,address = 8086 主机:192.168.99.100端口:8086