栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

用VSCode开发Spark应用

用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.SparkSession

object 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远程运行的结果。

哈!不错呦。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号