Scala编写Spark程序Windows本地调试、打jar包、提交远程集群运行


本文详述Scala本地debug、打jar包、提交到远程集群运行。

开发环境

编译器:InteliJ IDEA
JD版本:1.8
Spark版本:2.2.2
Hadoop版本:2.7.3
Scala版本:2.11.8

注意:

  1. IDEA自带Mave,sbt等工程管理工具,非常方便,所以选择IDEA。
  2. Windows本地调试,需要JDk,Spark,Hadoop,Scala,版本应当与集群版本保持一致。Spark和Hadoop的版本,只要不相差太大就没问题,但是本地和集群的JDK、Scala必须最好对应保持版本一致。

本地调试纯Scala程序

  1. 先下载JDK,Spark,Hadoop的安装包,解压到某个位置。

  2. 配置环境变量
    配置JAVA_HOME, SPARK_HOME, HADOOP_HOME
    在PATH这个变量中,添加JDK,Spark, Hadoop的bin目录对应的目录,如下图所示:
    Env

测试是否配置好环境变量,操作及正确反馈如下图:
JDK:
Java

Spark:
Spark

Hadoop:
Hadoop

  1. IDEA中建立Scala项目
    step1: 建立一个项目
    Scala>IDEA>Next,建立Scala项目。
    Scala
    step2: 配置
    特定注意配置好JDK路径,Scala路径和版本问题
    Scala
    选择Scala源文件(含有bin等目录的Scala文件)。
    Scala
    Scala
    建立目录,设置Sources源文件目录。
    Scala
    建立一个Scala类。
    Scala
    Scala
    编写对应代码,并运行。
    可以看出,可以代码通过。
    Scala

上面的是纯粹的Scala程序,不需要Hadoop或者Spark也可以正常运行。

本地调试Scala Spark程序

下面我们将代码编写更复杂一点。
step1: 导入Spark的jar包
Scala
step2: 选择$SPARK_HOME/jars中的所有包。
Scala
Apply > OK
Scala
编写带有SparkContext的Scala程序,创建sc。运行。可以看到,能够正常运行Spark程序了。
Scala

打包与提交到远程集群

  1. 打包
    步骤如下:
    Scala
    Scala
    Scala
    Scala
    如下图,可以看到out/artifacts/xxx/目录下,多了一个jar包:Scala2JAR.jar
    Scala
    2.提交运行
    得到这个jar包之后,利用WinSCP等工具,将文件上传到集群上。然后输入如下命令运行。
    1
    spark-submit --master spark://master_ip:7077 --class "类名" jar包.jar

Scala
出现如上的INFO-Level的日志,不报错,就说明成功运行。

可能出现的Bug

如果出现如下错误:最可能的原因是,本地和集群的Spark或Scala版本不一致造成的。
Scala

小结

将近一个月没写博客了,以后多挤点时间系统学习一些技能,知其所以然,争取坚持每周至少一篇总结的博客。加油!

累了可以听听左上角的相声。

文章目录
  1. 1. 开发环境
  2. 2. 本地调试纯Scala程序
  3. 3. 本地调试Scala Spark程序
  4. 4. 打包与提交到远程集群
  5. 5. 可能出现的Bug
  6. 6. 小结
  |