sbt安装

Spark 中没有自带 sbt,需要手动安装sbt,可在官网https://www.scala-sbt.org/download.html下载,我们这里使用的是sbt-0.13.9.tgz 我们选择安装在 /usr/local/sbt 中:

 
 
  1. sudo mkdir /usr/local/sbt
  2. sudo chown -R hadoop /usr/local/sbt # 此处的 hadoop 为你的用户名
  3. cd /usr/local/sbt
Shell 命令

下载后,执行如下命令拷贝至 /usr/local/sbt 中:

 
 
  1. cp ~/upload/sbt-launch.jar .
Shell 命令

接着在 /usr/local/sbt 中创建 sbt 脚本(vim ./sbt),添加如下内容:

 
 
  1. #!/bin/bash
  2. SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
  3. java $SBT_OPTS -jar /user/local/sbt/sbt-launch.jar "$@"
Shell 命令

保存后,为 ./sbt 脚本增加可执行权限:

 
 
  1. chmod u+x ./sbt
Shell 命令

最后检验 sbt 是否可用(首次运行会处于 “Getting org.scala-sbt sbt 0.13.9 …” 的下载状态,请耐心等待。笔者等待了 7 分钟才出现第一条下载提示):

 
 
  1. ./sbt sbt-version
Shell 命令

下载过程中可能会类似 “Server access Error: java.security.ProviderException: java.security.KeyException url=https://jcenter.bintray.com/org/scala-sbt/precompiled-2_9_3/0.13.9/precompiled-2_9_3-0.13.9.jar” 的错误,可以忽略。可再执行一次 ./sbt sbt-version,只要能得到如下图的版本信息就没问题:


验证 sbt 是否可用

按照官网教程安装 sbt 0.13.9 后,运行时会出现如下错误:

Getting org.scala-sbt sbt 0.13.9 ...

:: problems summary ::
:::: WARNINGS
    module not found: org.scala-sbt#sbt;0.13.9

  ==== local: tried
    /home/hadoop/.ivy2/local/org.scala-sbt/sbt/0.13.9/ivys/ivy.xml
    -- artifact org.scala-sbt#sbt;0.13.9!sbt.jar:
    /home/hadoop/.ivy2/local/org.scala-sbt/sbt/0.13.9/jars/sbt.jar

...

    ::::::::::::::::::::::::::::::::::::::::::::::
    ::          UNRESOLVED DEPENDENCIES         ::
    ::::::::::::::::::::::::::::::::::::::::::::::
    :: org.scala-sbt#sbt;0.13.9: not found
    ::::::::::::::::::::::::::::::::::::::::::::::


:::: ERRORS
  Server access Error: java.security.ProviderException: java.security.KeyException url=https://jcenter.bintray.com/org/scala-sbt/sbt/0.13.9/sbt-0.13.9.pom

...

:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.scala-sbt#sbt;0.13.9: not found
Error during sbt execution: Error retrieving required libraries
  (see /home/hadoop/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.9

用浏览器访问给出的链接,也是 404 的状态,这就需要修改 repositories 的地址。另外一个可能出现的问题是提示 “Server access Error: java.security.ProviderException: java.security.KeyException”,但通过浏览器可以访问,这应该是 https 导致的问题,可以改成通过 http 访问。

执行如下命令下载官方的 sbt-launch.jar,并进行解压:

 
 
  1. cd /usr/local/sbt
  2. wget https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.9/sbt-launch.jar -O ./sbt-launch.jar # 下载
  3. unzip -q ./sbt-launch.jar # 解压
Shell 命令

需要修改其中的 ./sbt/sbt.boot.properties 文件(vim ./sbt/sbt.boot.properties),将 [repositories] 处修改为如下内容(即增加了一条 oschina 镜像,并且将原有的 https 镜像都改为相应的 http 版):

[repositories]
  local
  oschina: http://maven.oschina.net/content/groups/public/
  jcenter: http://jcenter.bintray.com/
  typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
  maven-central: http://repo1.maven.org/maven2/

保存后,重新打包 jar:

 
 
  1. rm ./sbt-launch.jar # 删除旧的
  2. jar -cfM ./sbt-launch.jar . # 重新打包
  3. ls | grep -v "sbt-launch.jar" | xargs rm -r # 解压后的文件已无用,删除
Shell 命令

注意打包时,需要使用 -M 参数,否则 ./META-INF/MANIFEST.MF 会被修改,导致运行时会出现 “./sbt-launch.jar中没有主清单属性” 的错误。

重新打包后,接着创建 sbt 脚本并赋予可执行权限,在此就不再复试。


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值