编译+远程调试spark

Posted songchaolin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译+远程调试spark相关的知识,希望对你有一定的参考价值。

一 编译 

  以spark2.4 hadoop2.8.4为例

1,spark 项目根pom文件修改 

   

pom文件新增

<profile>
  <id>hadoop-2.8</id>
  <properties>
    <hadoop.version>2.8.4</hadoop.version>
  </properties>
</profile>

2,在spark home 目录下执行

mvn  -T 4 -Pyarn -Phadoop-2.8 -Dhadoop.version=2.8.4 -DskipTests clean package

 为了加快执行

编译 dev目录下 

vi make-distribution.sh 

修改

#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null#    | grep -v "INFO"#    | grep -v "WARNING"#    | tail -n 1)
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null#    | grep -v "INFO"#    | grep -v "WARNING"#    | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null#    | grep -v "INFO"#    | grep -v "WARNING"#    | tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null    | grep -v "INFO"    | grep -v "WARNING"    | fgrep --count "<id>hive</id>";    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing    # because we use "set -o pipefail"
    echo -n)
VERSION=2.4.0
SCALA_VERSION=2.11.8
SPARK_HADOOP_VERSION=2.8.4

 

3, 完成 maven编译 进行打包

  在spark根目录下执行

./dev/make-distribution.sh --name hadoop2.8 --tgz -PR -Phadoop-2.8.4 -Phive -Phive-thriftserver -Pyarn

问了加快编译 修改dev目录下

执行完毕在spark_home 根目录下 即生成相应版本的jar包

技术图片

 

 

 

二 远程Debug

1. 编译远程spark项目下的文件

 

spark-2.4.0-bin-hadoop2.8/conf/spark-defaults.conf

 

增加内容如下 这个用来调试spark driver端代码 

 

spark.driver.extraJavaOptions  -agentlib:jdwp=transport=dt_socket,server=n,address=你本机的ip:5007,suspend=y

 

同样调试 excutor也可以如此 只需要 在spark.executor.extraJavaOptions 新增内容即可

2 我们将spark源码import到idea中

   配置远程debug

技术图片

 

 这里因本地网跟远程不通 所以采用listen模式

先启动本地 idea spark项目 debug 再启动远程的spark任务

如图

技术图片

 

 下面就是 injoy yourself 

 

 

 

 

   

 

 

 

以上是关于编译+远程调试spark的主要内容,如果未能解决你的问题,请参考以下文章

Spark远程调试+页面监控--用最熟悉的方式开发Spark应用

Spark远程调试+页面监控--用最熟悉的方式开发Spark应用

Spark远程调试参数

搭建Spark源码研读和代码调试的开发环境

spark远程debug之调试spark on yarn 程序

Spark远程调试IDE调试