(一)Spark本地开发环境搭建与远程debug设置
来源:互联网 发布:闲鱼淘宝介入操作过程 编辑:程序博客网 时间:2024/06/05 08:32
快速看完《Spark大数据处理 技术、应用与性能优化》前四章后,对Spark有了一个初步的了解,终于踏出了第一步,现在需要在Spark集群中做些测试例子,熟悉一下开发环境和开发的流程。本文主要总结了如何在本地使用Maven搭建开发环境以及如何进行远程debug。由于采用的Spark是今年5月24号才发布的Spark2.1.1,网上大多数例子都是Spark1.X,因此走了不少弯路,才搭建好开发环境。
一:版本概述
Spark版本:2.1.1
IntelliJ IDEA:2017.1.5
开发环境:mac
测试环境:Linux
二:本地开发环境搭建
1、新建一个Maven项目,archetype选择scala
2、导入spark相关包
配置pom.xml,然后Maven自动下载依赖包,Spark2.X已经不提供spark-assembly-1.5.0-hadoop2.4.0.jar 之类的jar包,改成了一些小的jar包,存放在jars目录下。开发的时候可以全部导入jars目录下的jar包,但更方便的是使用maven可以方便的自动导入spark2.1.1开发所需要的包。
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.1</version> <scope>provided</scope> </dependency>
3、编写WordCount
package com.xuxp.testimport org.apache.spark.{SparkConf, SparkContext}/** * Created by xuxp on 2017/8/21. */object WordCount { def main(args: Array[String]): Unit = { if (args.length == 0) { System.err.println("Usage: SparkWordCount <inputfile> <outputfile>") System.exit(1) } val conf = new SparkConf().setAppName("WominWordCount") val sc = new SparkContext(conf) val textRdd = sc.textFile(args(0)) val result = textRdd.flatMap ( line => line.split("\\s+") ).map(word => (word, 1)).reduceByKey(_ + _) result.saveAsTextFile(args(1)) }}
4、打包配置
在project settings->Artifacts新建一个JAR—>from modules with dependencies
选择Main Class.
配置好后Build—>Build Artifacts —>build,就能生成打包好的jar包
5、jar包上传
配置文件上传tools—>deployment
打开Browse Remote Host,将文件直接拖过去,就实现文件上传
6、执行jar包
写一个执行脚本,上传后,每次只需要./run-spark.sh
就能很快的执行。执行时需要保证README.md在hdfs中。
执行完毕后,可以查询outputdir/part-00000
中的文件hadoop fs -cat outputdir/part-00000
三:远程开发调试
1、在远程服务器的bash中设置SPARK_SUBMIT_OPTS
export SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=41999
这是临时设置,每次都需要进行设置一下,暂不永久设置。
2、在IntelliJ IDEA中配置remote debug
3、打个断点
4、在远程服务器上运行程序
运行时会出现程序挂起,监听端口中,此时进行下一步
5、在IntelliJ IDEA中debug
出现如下情况,说明远程debug成功
程序会继续输出,并在断点出停住。
总结
不得不说IntelliJ IDEA确实是一个非常强大的集成开发环境,提供版本管理,ssh,远程debug等强大功能,是Spark开发的利器,事实上Spark的开发团队也是使用IntelliJ IDEA来开发Spark的。
网上的有关spark的搭建文章有时候并不适合自己,需要根据自己的环境,软件的版本来选择搭建的方式。
参考资料
How to debug a scala based Spark program on Intellij IDEA - Stack Overflow
想研读下spark的源码,怎么搭阅读和调试的环境呢? - 知乎
IntelliJ IDEA 导入 spark 源码 步骤 - - CSDN博客
Spark修炼之道(进阶篇)——Spark入门到精通:第三节 Spark Intellij IDEA开发环境搭建-博客-云栖社区-阿里云
- (一)Spark本地开发环境搭建与远程debug设置
- Spark本地开发与远程调试环境搭建
- spark本地java开发环境的搭建
- 一 eclipse Spark 本地开发调试环境
- Spark Streaming 实战(1)搭建kafka+zookeeper+spark streaming 的windows本地开发环境
- Openfire和Spark本地开发环境搭建记要
- Spark SQL 本地开发环境搭建和案例分析
- Spark开发-spark环境搭建
- spark 开发环境搭建
- 搭建spark开发环境
- 搭建spark开发环境
- Spark开发环境搭建
- Spark开发环境搭建
- spark开发环境搭建
- spark开发环境搭建
- Spark开发环境搭建
- window+idea+spark+debug windows下spark开发调试环境搭建
- 用java开发微信公众号:测试公众号与本地测试环境搭建(一)
- springmvc中@ModelAttribute和@SessionAttributes标签的使用
- 图说设计模式
- itext5关于页眉和页脚的设置
- web17天过滤器,监听器
- deeplearning.ai学习(numpy方法使用)
- (一)Spark本地开发环境搭建与远程debug设置
- Reverse Integer
- POJ1222(枚举法)
- Spark基础-Scala集合函数式编程
- web第18天ajax和json
- 乘积最大(NOIP2000&NOIP水题测试(2017082301))
- web项目从eclipse迁移到idea的二三感想和总结
- Kotlin最佳实践
- CodeForces