我正在尝试使用主节点和工作节点在本地群集上调试Spark应用程序。我已成功使用带有start-master.sh
的Spark独立集群管理器来设置主节点和工作节点,并且它正常工作。但我想知道Spark应用程序如何在spark集群中工作,所以我想在调试中启动集群模式。我阅读了start-master.sh
代码,模拟了args并启动了org.apache.spark.deploy.master.Master
main方法。不幸的是,它获得了NoClassDefFoundError,我无法打开webui。我想知道问题出在哪里。
错误是:
Exception in thread "dispatcher-event-loop-1" java.lang.NoClassDefFoundError: org/eclipse/jetty/util/thread/ThreadPool
at org.apache.spark.ui.WebUI.attachPage(WebUI.scala:81)
at org.apache.spark.deploy.master.ui.MasterWebUI.initialize(MasterWebUI.scala:48)
at org.apache.spark.deploy.master.ui.MasterWebUI.<init>(MasterWebUI.scala:43)
at org.apache.spark.deploy.master.Master.onStart(Master.scala:131)
at org.apache.spark.rpc.netty.Inbox$$anonfun$process$1.apply$mcV$sp(Inbox.scala:122)
at org.apache.spark.rpc.netty.Inbox.safelyCall(Inbox.scala:205)
at org.apache.spark.rpc.netty.Inbox.process(Inbox.scala:101)
at org.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:216)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.util.thread.ThreadPool
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 11 more
我的调试配置是: enter image description here
谢谢!
答案 0 :(得分:1)
我建议不要使用spark独立群集进行调试。
请按照以下链接了解有关如何在spark中为本地模式编写测试用例的更多信息 http://bytepadding.com/big-data/spark/word-count-in-spark/