编译+远程调试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>

maven仓库地址增加
<repository>
<id>bilibili-nexus-releases</id>
<url>http://nexus.bilibili.co/content/repositories/releases/</url>
</repository>
<repository>
<id>bilibili-nexus-snapshots</id>
<url>http://nexus.bilibili.co/content/repositories/snapshots/</url>
</repository>

2,在spark home 目录下执行

mvn  -T 4 -Pyarn -Phadoop-2.8  -DskipTests clean package

3, 完成 maven编译 进行打包

  在spark根目录下执行

./dev/make-distribution.sh --name -hadoop-2.8 --tgz  -Dhadoop.version=2.8.4 -Phive -Phive-thriftserver -Pyarn 

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

若想单独编译某模块 比如编译spark-core 

 

 依次执行

mvn clean install //将项目依赖拉到本地
./dev/make-distribution.sh --name hadoop2.8 --tgz  -Phadoop-2.8.4 -Phive -Phive-thriftserver -pl:spark-core_2.11 -Pyarn

二 远程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任务

如图

 下面就是 enjoy yourself 

 

 

   

 

原文地址:https://www.cnblogs.com/songchaolin/p/12028356.html