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

     

     

       

     

  • 相关阅读:
    sql-select for update
    java-JDK动态代理
    idea-热部署jreble的使用
    vue-【el-table】转成【pl-table】
    mybatis-字段值为null或为''无法存储到数据库
    vue-本地开发热部署编译缓慢
    chrome-截长图
    el-cascader 级联选择器中选中任意一级去掉圆形按钮
    idea-绿色注释颜色16进制
    markdown 语法
  • 原文地址:https://www.cnblogs.com/songchaolin/p/12028356.html
Copyright © 2020-2023  润新知