首页 > 编程语言 >每日随笔——使用sbt对Scala独立应用程序进行编译打包

每日随笔——使用sbt对Scala独立应用程序进行编译打包

时间:2023-10-29 12:55:35浏览次数:36  
标签:sbt Scala 应用程序 server export sparkapp spark

使用sbt对Scala独立应用程序进行编译打包

1. 安装sbt

使用Scala语言编写的Spark程序,需要使用sbt进行编译打包。Spark中没有自带sbt,需要单独安装。可以在网盘下载sbt安装文件sbt-1.9.0.tgz。

网盘地址:https://pan.baidu.com/s/181shkgg-i0WEytQMqeeqxA(提取码:9ekc )

 sudo mkdir /export/server/sbt    
 sudo tar -zxvf /export/server/sbt-1.9.0.tgz -C /export/server/ 
 cd /export/server/sbt
 sudo chown -R hadoop /export/server/sbt
cp ./bin/sbt-launch.jar ./

安装目录中使用下面命令创建一个Shell脚本文件,用于启动sbt:

 vim /export/server/sbt/sbt

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"

增加权限

chmod u+x /export/server/sbt/sbt

查看版本信息

cd /export/server/sbt
 ./sbt sbtVersion

 安装完成

2. Scala应用程序代码

创建一个文件夹 sparkapp 作为应用程序根目录

cd /export/server/       # 进入用户主文件夹
mkdir  sparkapp        # 创建应用程序根目录
mkdir -p ./sparkapp/src/main/scala 

建立一个名为 SimpleApp.scala 的文件

vim ./sparkapp/src/main/scala/SimpleApp.scala




import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
 
object SimpleApp {
        def main(args: Array[String]) {
            val logFile = "file:///export/server/spark/README.md" // Should be some file on your system
            val conf = new SparkConf().setAppName("Simple Application")
            val sc = new SparkContext(conf)
            val logData = sc.textFile(logFile, 2).cache()
            val numAs = logData.filter(line => line.contains("a")).count()
            val numBs = logData.filter(line => line.contains("b")).count()
            println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
        }
    }

该程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。 在sparkapp这个目录中新建文件simple.sbt,命令如下

cd export/server/sparkapp
vim simple.sbt

添加依赖内容

name := "Simple Project"
version := "1.0"
scalaVersion := "2.12.17"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.4.0"
版本号可以自行查看,上文有介绍

3. 使用 sbt 打包 Scala 程序

/export/server/sbt/sbt package

 

4. 通过 spark-submit 运行程序

 

标签:sbt,Scala,应用程序,server,export,sparkapp,spark
From: https://www.cnblogs.com/jiacheng-712/p/17794274.html

相关文章

  • 如何借助python第三方库存取不同应用程序的用户名、密码
    在之前的一系列文章中,小爬分享了很多用Pywin32、uiAutomation、sapGuiScript等技术实现应用程序或者Web网站(如SAP、Excel、outLook邮件系统、OA系统)的自动化操作的文章。但是,这些文章都绕开了一个知识点:如何优雅地实现自动登录。与其说是想聊聊如何实现自动登录,其实是绕到了......
  • Web 应用程序中进行多线程处理-Web Workers
    1、什么是WebWorkers?WebWorkersAPI是一组用于创建并在后台运行脚本的接口,以便在Web应用程序中进行多线程处理。它使得可以将一些耗时的计算任务放在单独的线程中执行,从而避免阻塞主线程,提高了应用程序的响应性能。2、使用方式以下是WebWorkersAPI中常用的接口和方法:Worke......
  • Net 高级调试之二:CLR和Windows加载器及应用程序域介绍
    一、简介今天是Net高级调试的第二篇文章,第一篇文章记录了自己学习Net高级调试的第一步,认识一些调试工具,有了工具的倚仗,我们开始仗剑走天涯了,开始Net高级调试正式的征程了。我先说一下,我的文章,【调试测试】这部分一般分为两个部分,第一部分是要用到的所有测试代码样例,......
  • DevExpress WinForms地图组件 - 轻松集成地图功能到应用程序
    DevExpressWinForms地图控件允许您在WinForms应用程序中合并地图服务,您可以选择现有的地图资源,如如Bing或OpenStreetMap,或者在公司网络中创建自己的地图数据服务器。DevExpressWinForms地图控件完全支持矢量和笛卡尔坐标地图。DevExpressWinForms有180+组件和UI库,能为Windows......
  • Scala学习(五)对象
    一、object1、Object相当于class的单个实,通常放一些静态常量和静态方法2、不能定义有参的构造方法3、构造方法只在第一次调用时执行,再次调用不再执行4、可以实现全局变量的功能,如下图 5、object通常用作单例模式的实现,或者存放类的静态成员二、伴生类1、如果同一个scala......
  • Error: Unable to access jarfile ./sbt-launch.jar问题的解决
    问题描述在配置好sbt之后,尝试运行一下./sbtsbtVersion这个命令;却突然出现上面那种情况;问题解决重新查看相关教程,发现我漏掉一个步骤,一定要将sbt的bin目录下的sbt-launch.jar复制到sbt的安装目录下,不然就会找不到这个jar包而出错;命令(在sbt的安装目录下使用):cp./bin/sbt-l......
  • NetCore windowsService 看门狗应用程序
    publicclassDogService:BackgroundService{publicoverrideTaskStartAsync(CancellationTokencancellationToken){returnbase.StartAsync(cancellationToken);}///<summary>///每一秒执行一次......
  • 小白学Python - 使用Python的文件共享应用程序
    使用Python的文件共享应用程序计算机网络 是一个重要的主题,要理解这些概念,需要实际应用这些概念。在这篇特别的文章中,我们将了解如何使用Python制作一个简单的文件共享  Web服务器是理解URL(网址)和HTTP(用于查看网页的协议)的软件。Python有几个包,它们是模块的集合。它有几个内......
  • Redis和Spring Boot:如何协作提高您的应用程序性能
    环境说明:Windows10+Idea2021.3.2+Jdk1.8+SpringBoot2.3.1.RELEASE前言Redis是一种高效的非关系型数据库,能够支持复杂的数据结构和操作。在SpringBoot应用中,集成Redis可以提供更好的性能和扩展性。本文将介绍如何在SpringBoot应用中集成Redis并使用其基本功能......
  • 小白学Python - 使用 Django 的天气应用程序
    使用Django的天气应用程序本文中我们将学习如何创建一个使用Django作为后端的天气应用程序。Django提供了一个基于PythonWeb框架的Web框架,允许快速开发和干净、务实的设计。基本设置cdweather启动服务器pythonmanage.pyrunserver要检查服务器是否正在运行,请转至Web......