用VSCode开发Spark应用
通常Spark普遍使用Jet Brain的Idea,用Idea建立本地服务器并进行测试开发,使用起来还相对不错,可以借力Idea强大而便捷的功能,使得开发应用相对得心应手。然而最近一直考虑远程服务器的搭建并建立开发环境,发现Idea缺乏远程开发的支持或支持不是十分完美。一段时间使用VSCode,感觉十分不错,轻量化,尤其完美的远程服务器模式,不仅支持WSL,也支持SSH远程模式很适合远程环境配置开发。以下是使用VSCode借力远程服务插件和Scala Metals插件搭建Spark应用开发环境记录心得。
1 VSCode安装远程服务插件
在VSCode扩展搜索安装Remote-SSH和Remote-WSL插件,他们分别支持SSH远程和WSL的环境开发。
2 在VSCode扩展搜索安装Scala语言插件Scala Syntax (official)和Scala (Metals),核心是Scala Metals,该插件是Metals针对VSCode插件,为Scala center维护,可谓具有相当官方地位,具备代码补全、提示、高亮、运行与调试等功能。需要注意,不要同时安装 Scala Language Server 和 Scala (sbt) 插件。
官方网址:Metals | Metals (scalameta.org)https://scalameta.org/metals/3 下载安装配置必要的应用软件,包括JDK、Scala、Sbt、Spark、Hadoop等。如果是本机测试,最小安装包括Spark,相应Hadoop、Scala。应该注意相互的版本匹配,比如spark-3.1.1-bin-hadoop3.2,选择安装hadoop-3.2.1,注意查看spark-3.1.1-bin-hadoop3.2 Scala版本,在Spark安装目录里jars下,可以看到Spark Scala是2.12.10,所以下载安装Scala 2.12.10。Sbt可以下载安装最新版。另需要注意,在Windows系统下,Spark最新版3.2.0安装后无法正常启动,但Spark 3.1.2还有以前的版本基本上能够正常运行。运行本地最小Spark其实并不需要Hadoop的安装,为了避免出错,在Windows系统下下载安装相应版本的Hadoop编译winutils,可以到Github下载。kontext-tech/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows (github.com)
https://github.com/kontext-tech/winutils
JKD安装1.8版本,更高版本很多时候会出现各种各样的问题,适配性较差。软件安装需要完成一系列的设置,比如各环境变量JAVA_HOME、HADOOP_HOME、SPARK_HOME、SCALA_HOME、SBT_HOME,指向相应的软件安装目录,设置PATH路径。
4 创建Scala项目。创建项目目录比如spark-test,在内创建目录结构src/main/scala。在项目目录中启动VSCode。这是在我机器的WSL下状态。
wslu@LAPTOP-Q1FQOTCB:~/devz$ mkdir spark-test
wslu@LAPTOP-Q1FQOTCB:~/devz$ cd spark-test
wslu@LAPTOP-Q1FQOTCB:~/devz/spark-test$ mkdir -p src/main/scala
wslu@LAPTOP-Q1FQOTCB:~/devz/spark-test$ code .
在项目下新建文件build.sbt。
scalaVersion := "2.12.10"name := "spark-test"
version := "1.0"libraryDependencies += "org.scala-sbt" %% "zinc" % "1.5.7"libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"
修改scalaVersion和name适合你的设置,保存,此时会弹出Import the build,选Import build,此时Metals监测到项目的变化,识别项目是Scala项目,会开始进行一系列的项目设置,并下载相关依赖。当项目中有.sbt或.scala文件发生变化,Metals都会识别,做相应的Import build或编译等动作。
可以看到项目结构产生了变化,在项目下新产生一些"."开头的文件目录和project、target目录。
注意 libraryDependencies += "org.scala-sbt" %% "zinc" % "1.5.7" 是Metals项目需要的。以下可以编写代码。
首先在build.sbt中添加依赖:
libraryDependencies +="org.apache.spark"%%"spark-core"%"3.1.1"
libraryDependencies +="org.apache.spark"%%"spark-sql"%"3.1.1"
注意 ”3.2.0“ 是Spark版本,要适合你的Spark版本号。
创建Scala文件,比如Spark Test.scala,输入代码,保存。
import org.apache.spark.sql.SparkSessionobject SparkTest {def main(args: Array[String]) = {println("hello scala!")val ss = SparkSession.builder.appName("SparkTest").master("local[*]").getOrCreate()import ss.implicits._ss.createDataset(1 to 10).show()ss.close()}}
Matels会识别变化,进行一些动作,然后可以运行程序。
在VSCode开启终端,用SBT编译、打包和运行程序。
点击编辑窗口 run | debug,可以借助Metals直接进行程序的运行和调试。
这后几个截图都是SSH远程运行的结果。
哈!不错呦。
用VSCode开发Spark应用相关推荐
- 使用VScode开发ESP32,PlatformIO开发ESP32
arduino IDE安装开发板库 安装arduino IDE 首先下载arduino IDE并安装.在官网下载即可.如果官网下载慢,可以找第三方资源下载. 下载开发板库 安装后进入"文件& ...
- 使用VScode开发ESP8266,PlatformIO开发ESP8266
arduino IDE安装开发板库 安装arduino IDE 首先下载arduino IDE并安装.在官网下载即可.如果官网下载慢,可以找第三方资源下载. 下载开发板库 安装后进入"文件& ...
- 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )
文章目录 一.tasks.json 中的 args 数组配置分析 二.编译并执行 C++ 程序 可以参考官方提供的文档 : https://code.visualstudio.com/docs/cpp ...
- 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )
文章目录 一.创建 tasks.json 编译器构建配置文件 二.tasks.json 编译器构建配置文件分析 可以参考官方提供的文档 : https://code.visualstudio.com/ ...
- 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ③ ( 创建工程目录 | 添加 C++ 源代码 | 代码自动提示 )
文章目录 一.创建工程目录 二.添加 C++ 源代码 三.代码自动提示 可以参考官方提供的文档 : https://code.visualstudio.com/docs/cpp/config-linu ...
- Apache Spark学习:利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...
- vsCode 开发微信小程序插件
用 vsCode 开发微信小程序可以配置以下插件,让开发更美好: 1. vscode weapp api 2. vscode wxml 3. vscode-wechat 4. Easy WXLESS ...
- maven环境下使用java、scala混合开发spark应用
熟悉java的开发者在开发spark应用时,常常会遇到spark对java的接口文档不完善或者不提供对应的java接口的问题.这个时候,如果在java项目中能直接使用scala来开发spark应用,同 ...
- VSCode开发.NETCore项目入门(1)设置中文语言环境
安装VSCode 最新地址:https://code.visualstudio.com/,下载后安装即可 配置语言环境 打开安装好的VSCode软件,可以看到刚刚安装的VSCode软件默认使用的是英文 ...
最新文章
- 漏洞评估的优先级决定了网络安全保护的成本
- vue eslint 代码自动格式化
- 修复 XE7 , XE8 Frame 内 PopupMenu 快捷键失效问题
- java spring源码_spring源码分析-spring中的bean
- 8 定制10MINs 3
- Java集合框架之接口Collection源码分析
- 大型网站技术架构-入门梳理
- 通过分析如何一个人的性格笔迹?
- LINUX 7.0真机系统安装问题
- cs231n课后作业(1)
- 度分秒与度数相互转换的Matlab函数
- rx560d linux 图形设计,RX560D与560区别对比:RX 560D和RX 560哪个好
- 检测键盘的 CAPS LOCK 开关
- 编码中关于二义性的解释
- 数字中国创新大赛决赛名单出炉,与华为云 EI 一起挑战书法识别
- 为什么宝宝做错事被骂哭后,还要求抱抱?
- 剪刀石头布(自留底)01
- 数字信号处理(FIR滤波器的设计与原理及基础知识)
- 原来做图标这么简单!
- 浅谈微信三级分销系统的漏洞