当前位置: 首页 > news >正文

Spark大数据分析实战【1.1】

2.3 Spark编译

用户可以通过Spark的默认构建工具SBT进行源码的编译和打包。当用户需要对源码进行二次开发时,则需要对源码进行增量编译,通过下面的方式读者可以实现编译和增量编译。

(1)克隆Spark源码

可通过克隆的方式克隆Spark源码,如图2-9所示。

git clone https:// github.com/apache/spark

这样将会从github将Spark源码下载到本地,建立本地的仓库。

(2)编译Spark源码

在Spark项目的根目录内执行编译和打包命令(如图2-10所示)。

sbt/sbt assembly

执行过程中会解析依赖和下载需要的依赖jar包。执行完成后会将所有jar包打包为一个jar包,用户便可以运行Spark集群和示例了。

(3)增量编译

在有些情况下,用户需要修改源码,修改之后如果每次都重新下载jar包或者对全部源码重新编译一遍,会很浪费时间,用户通过下面的增量编译方法,可以只对改变的源码进行编译。

编译打包一个assembly的jar包。

$ sbt/sbt clean assembly

这时的Spark程序已经可以运行。用户可以进入spark-shell执行程序。
$ ./bin/spark-shell
配置export SPARK_PREPEND_CLASSES参数为true,开启增量编译模式。
$ export SPARK_PREPEND_CLASSES=true
继续使用spark-shell中的程序:
$ ./bin/spark-shell
这时用户可以对代码进行修改和二次开发:初始开发Spark应用,之后编译。
编译Spark源码:
$ sbt/sbt compile
继续开发Spark应用,之后编译。
$ sbt/sbt compile
解除增量编译模式:
$ unset SPARK_PREPEND_CLASSES
返回正常使用spark-shell的情景。
$ ./bin/spark-shell # Back to normal, using Spark classes from the assembly Jar
如果用户不想每次都开启一个新的SBT会话,可以在compile命令前加上~。
$ sbt/sbt ~ compile
(4)查看Spark源码依赖图如果使用SBT进行查看依赖图(如图2-11所示),用户需要运行下面的命令:
$ # sbt
$ sbt/sbt dependency-tree
如果使用Maven进行查看依赖图(如图2-11所示),用户需要运行下面的

http://www.jsqmd.com/news/670452/

相关文章:

  • 050基于单片机万用表量程手动自动电阻电流电压设计
  • 062 150W大功率开关电源电路方案
  • CRNN OCR文字识别镜像在发票处理中的应用实战
  • 支持C++/Java/Python多语言调用:SenseVoice-Small ONNX接口详解
  • [特殊字符] EagleEye一文详解:DAMO-YOLO TinyNAS模型量化(INT8)前后精度损失实测
  • 零成本实现一台电脑多人分屏游戏:Nucleus Co-Op终极指南
  • 047基于单片机加热炉多参数检测和PID炉温系统 压力
  • CasRel模型在软件测试报告分析中的应用:缺陷关联挖掘
  • S2-Pro智能体(Agent)开发框架实践:构建自主任务执行系统
  • V锥流量计哪个品牌好?分享一下不同厂家在蒸汽/气体/液体介质上的使用体验 - 品牌推荐大师
  • 别再搞混了!Simulink模型工作区和基础工作区,新手必知的5个实战场景与选择指南
  • 048基于单片机声光控智能路灯系统仿真设计
  • GLM-OCR模型训练数据准备:Python脚本批量处理与标注文件生成
  • 云容笔谈·东方红颜影像生成系统:利用STM32CubeMX配置网络通信与AI应用框架
  • 【系统设计】系统设计五大核心原则(高可用、高性能、可扩展性、可维护性、安全性)
  • 2026年华东区域耐高温、高硬度、疏水疏油涂层机构,超致密陶瓷封孔剂/聚硅氮烷,耐高温、高硬度、疏水疏油涂层机构有哪些 - 品牌推荐师
  • 10分钟掌握ipget:IPFS网络的无节点文件下载终极指南
  • 告别本地环境!用这个在线工具5分钟上手Manim CE 0.7,边改代码边看动画效果
  • 049基于单片机停车场环境监测系统仿真设计
  • 3步解锁Zotero自动文献下载:SciPDF插件深度解析与实战指南
  • 打破单机游戏壁垒:Nucleus Co-Op让一台电脑实现多人同屏游戏
  • CoPaw在智能客服场景的落地实践:基于NLP的意图识别与多轮对话
  • 【架构设计】高可用架构设计:SLA可用性指标、集群、副本、异地多活、容灾备份、故障隔离
  • 六、java配置类改造ioc
  • 058基于51单片机超声波测距测液位及报警设计
  • AI-Shoujo HF Patch:一站式游戏增强方案
  • 国内雷达液位计十大品牌排名 - 仪表人小余
  • 2026年口碑好的雪糕冰淇淋贴牌厂家盘点,哪家值得合作? - 工业推荐榜
  • 2026年|怎么让论文降AI率从50%降到10%?亲测有效:4个指令+3个技巧+言笔降AI工具 - 降AI实验室
  • Locale-Emulator:快速解决软件语言兼容性问题的终极指南