Instale y use la herramienta de compilación y empaquetado scala en Linux

  1. Primero introduzca la instalación de sbt:
wget https://piccolo.link/sbt-1.3.5.tgz
tar -xvf sbt-1.3.5.tgz
cd sbt
vi sbt #新建sbt,输入下述内容,`path`中为sbt的绝对路径
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled"
java $SBT_OPTS -jar `path`/sbt/bin/sbt-launch.jar "$@"

# 其中Xms512M 代表堆内存初始值为512MB, Xmx1536M 代表堆内存最大值为11536MB, Xss1M 代表stack(栈)设置为1MB, 如果程序运行出现了 Cannot allocate memory、 mmap failed to map、 StackOverFlowError等问题,可以尝试修改这个参数

chmod a+x sbt #增加权限

vi ~/.bashrc #在文件.bashrc中加入下述order
export PATH=$PATH:`path`/sbt

source ~/.bashrc

sbt sbtVersion #我看很多文章中用的是sbt sbt_version, 应该是版本的问题,大家注意了,出现以下信息就表明sbt设置成功了:
[info] 1.3.5
  1. El siguiente paso es compilar y empaquetar:
mkdir helloworld
cd helloworld
find . #首先建立如下所示的目录结构
.
./src
./src/main
./src/main/scala
./src/main/scala/test.scala
./simple.sbt

vi ./src/main/scala/test.scala #输入如下内容,来自菜鸟
object HelloWorld {
   /* 这是我的第一个 Scala 程序
    * 以下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

vi ./simple.sbt #输入如下内容

name := "HelloWorld"  #随便设

version := "1.3.5" #sbt版本号 (我觉得,但好像可以随便设)

scalaVersion := "2.11.12" #scala版本号,来自spark-shell
# 程序需要用到哪些spark library,就需要如下所示的添加在`.sbt`文件内,也可以把spark的jar包放在同级文件夹lib内,这样就可以直接调用本地编译的spark库
libraryDependencies += "org.apche.spark" %% "spark-core" % "2.4.4"
libraryDependencies += "org.apche.spark" %% "spark-sql" % "2.4.4"
libraryDependencies += "org.apche.spark" %% "spark-graphx" % "2.4.4"


sbt package #之后就可以使用该命令编译打包了,最后得到的jar文件在target/scala文件夹下
  1. Combinación con Spark
    Bajo la premisa de que Spark se ha instalado, puede ejecutarlo con el siguiente comando:
spark-submit --class HelloWorld <path>/target/scala-2.11/HelloWorld_2.11-1.3.5.jar

spark-submit --help #通过该命令可以看到很多配置参数,可以根据需要设置
 
  1. Errores y soluciones:
# StackOverflowError
spark-submit --class HelloWorld --driver-java-options "-Xss10m" <path>/target/scala-2.11/HelloWorld_2.11-1.3.5.jar

# Cannot allocate memory, No space left on device. 在保证内存、磁盘空间足够的前提下:
spark-submit --class HelloWorld --driver-memory 20G --executor-memory 20G <path>/target/scala-2.11/HelloWorld_2.11-1.3.5.jar
Publicado 10 artículos originales · ganado elogios 0 · Vistas 6259

Supongo que te gusta

Origin blog.csdn.net/u010379248/article/details/103639401
Recomendado
Clasificación