Spark1.6 Idea下远程调试

使用的开发工具:scala2.10.4、Idea16、JDK8

1.导入依赖的包和源码

在下载Spark中到的导入spark的相关依赖了包和其源码.zip,相关源码的下载地址:https://github.com/apache/spark/tree/v1.6.0

地址最后面是对应的版本号,下载源码便于看注释

2.使用官方求Pi的例子

[java] view plain copy

  1. import org.apache.spark.{SparkConf, SparkContext}
  2. object FirstDemo {
  3. def main(args: Array[String]) {
  4. val conf = new SparkConf().setAppName("Spark Pi")
  5. val spark = new SparkContext(conf)
  6. val slices = if (args.length > 0) args(0).toInt else 2
  7. val n = 100000 * slices
  8. val count = spark.parallelize(1 to n, slices).map { i =>
  9. val x = Math.random * 2 - 1
  10. val y = Math.random * 2 - 1
  11. if (x * x + y * y < 1) 1 else 0
  12. }.reduce(_ + _)
  13. println("*****Pi is roughly " + 4.0 * count / n)
  14. spark.stop()
  15. }
  16. }

3.导出项目jar包

确认之后->build->build artifacts->rebuild

4.启动集群

先修改配置文件,再启动集群可能会导致master无法正常启动,下次想取消远程调试,可以把配置文件再改回来

[plain] view plain copy

  1. [[email protected] sbin]# jps
  2. 30212 SecondaryNameNode
  3. 32437 -- main class information unavailable
  4. 30028 NameNode

所以请先启动集群

[plain] view plain copy

  1. [[email protected] sbin]# ./start-all.sh
  2. starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark-1.6.0-bin-hadoop2.6/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
  3. slave01: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark-1.6.0-bin-hadoop2.6/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave01.out

5.修改配置文件spark-class

spark-class在SPARK_HOME/bin下

[plain] view plain copy

  1. done < <("$RUNNER" -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main "[email protected]")

修改成

[plain] view plain copy

  1. done < <("$RUNNER" -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main $JAVA_OPTS "[email protected]")

$JAVA_OPTS 为我们添加的参数,下面在命令行中为其声明(建议写到配置文件中)

[plain] view plain copy

  1. export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

6.提交Spark,开启端口监听

上传之前生成的jar包到master节点,在命令行中执行

[plain] view plain copy

  1. spark-submit --master spark://master:7077 --class FirstDemo Spark02.jar

出现如下结果,表示master正在监听5005端口

[plain] view plain copy

  1. [[email protected] ~]# spark-submit --master spark://master:7077 --class FirstDemo Spark02.jar
  2. Listening for transport dt_socket at address: 5005

7.Idea配置远程

添加Remote组件,填写master的ip的监听端口

8.启动调试

JAVA_OPTS参数说明:

[plain] view plain copy

  1. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
  2. 参数说明:
  3. -Xdebug 启用调试特性
  4. -Xrunjdwp 启用JDWP实现,包含若干子选项:
  5. transport=dt_socket JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
  6. address=5005 JVM在5005端口上监听请求,这个设定为一个不冲突的端口即可。
  7. server=y y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
  8. suspend=y y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。

参考文章列表:

http://blog.csdn.net/lovehuangjiaju/article/details/49227919     Spark1.5远程调试

http://www.thebigdata.cn/QiTa/12370.html      调试参数

时间: 2024-10-11 16:38:52

Spark1.6 Idea下远程调试的相关文章

Windowns下远程调试Linux下程序(MinGW+GDB+SlickEdit+GDBServer)(有待完善)

前言: 本文思路来自嵌入式开发,Linux下远程调试开发板.废话不多说,开始吧!! Windown端: 一.下载和解压MiniGW, 从官网下载MiniGW,解压.(本例放在C:\) 二.下载和解压GDB:下载地址为:http://ftp.gnu.org/gnu/gdb/(本文以gdb-7.2为例,放在C:\) 三.在Windowns下编译GDB 运行C:\MinGW\msys\1.0\msys.bat $ cd c: $ cd gdb-7.2 $./configure --target=i68

hadoop下远程调试方法

JPDA 简介Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序.JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI).一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成.它的设计目的是让调试人员在任何环境中都可以进行调试.更详细的介绍,您可以参考使用 Eclipse 远程调

Intellij IDEA下远程调试hadoop

最近在开发新的MapReduce程序时,经常要打jar包上传到服务器,然后运行hadoop jar      balaba...... 看到网上都是在Eclipse下调试hadoop集群中MapReduce程序,而且描述的都是模模糊糊,有些根本就是错的,实在不忍心直视,其中有一篇关于idea下调试hadoop集群程序的博客,被疯狂转载,可是仔细看看,根本没用,因为他的平台是Linux. 使用Intellij IDEA+maven的开发hadoop的同学,如果想在本地直接运行,不去上传jar包,可

.NET C#微信公众号开发远程断点调试(本地远程调试生产环境)

最近在做微信公众号开发,由于之前没有接触过,突然发现调试不方便,不方便进行断点跟踪调试.因为微信那边绑定的服务器地址必须是公网地址,但是还是想进行断点调试(毕竟这样太方便了) 因此上网搜了一下,发现好多是使用软件之类的进行请求转发从生产环境转发请求到开发环境上,发现有的太麻烦了. 突然想到Vs有一个附加到进程的远程调试.于是玩了一把.我们直接开始(服务器上就不要使用发布版本代码了,代码和本地开发一样,不然是不能调试的) 本篇是以开发环境的Visual Studio2013旗舰版以及生产环境里阿里

使用Eclipse远程调试Tomcat

有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后台通 知就不得不用外网的ip.无奈,只能扔到服务器远程调试了. 网上讲关于远程调试tomcat的倒是蛮多,基本都是将改啥catalina.sh,startup.sh的,操作还是复杂点.下面这篇就只针对于 linux下的tomcat远程调试,不用改啥文件,简单而又没啥副作用.本人在tomcat6 的情况下远程调试成功. 相信很 多J2EE的开发者都是在Windows上面开发程序,然后把程序上传到Linux下运行的吧.可是有时候在自己机器

Linux下Debug模式启动Tomcat进行远程调试

J2EE开发各类资源下载清单,  史上最全IT资源,点击进入! 一.      应用场景 在实际的测试过程中,可能会遇到由于程序执行的不间断性,我们无法构造测试场景来验证某个功能的正确性,只有通过代码级的调试才能验证功能是否正确.然而开发本地调试的话,不具有说服力,这时我们测试人员必须连接到linux下的基线版本代码进行远程调试 二.调试步骤 1.部署服务工程到Linux系统下的Tomcat中,本文档重点是远程调式,为了防止文档篇幅累赘,这里就不介绍部署工程了. 2.更改tomcat远程调试端口

GDB远程调试(一)之DM8168下gdb远程调试环境的搭建

1.前言 gdb是较为流行和通用的linux环境调试工具,掌握它对于嵌入式开发工作来说非常必要,能够提高工作效率,快速发现和解决问题.最近有兴趣研究了下gdb使用,特总结如下以备以后查阅. 2.下载最新的gdb 下载地址:http://ftp.gnu.org/gnu/gdb/,选择目前最新的版本下载.我选择了gdb-7.7.tar.gz版本 3.编译gdb和gdbserver (1)解压到你的工作目录: [email protected]:~$ tar -xvf gdb-7.7.tar.gz (

【Java】使用Eclipse进行远程调试,Linux下开启远程调试

原博地址:http://blog.csdn.net/dfdsggdgg/article/details/50730311 1.center下,在startup.sh文件首行中添加如下语句 declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"(不要换行,要在同一行) Ubu

【Java】使用Eclipse进行远程调试,Windows下开启远程调试

原博链接:http://blog.csdn.net/sunyujia/article/details/2614614 今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言也说不明白,从以前我发表的一篇文章可以看得出来,http://blog.csdn.net/sunyujia/archive/2008/03/23/2211109.aspx 我的朋友们普通反应看完后觉得不知所云,可能是我写的太简单,下面步入正题. 什么是远程调试,就是在A机器上利用Eclipse单