我一直在尝试使用教程安装spark,每次我运行命令sbt/sbt程序集,我得到错误"错误:无效或损坏的jarfile sbt/sbt-launch-0.13.5.jar"
我已经尝试了所有方法:分别将sbt文件添加到spark文件夹中的sbt文件夹中,单独安装sbt,检查下载并重新安装,但都是徒劳的。关于我做错了什么有什么建议吗?谢谢。
好的,玩了一段时间后,我终于得到了它,希望这将为您工作,以及。该教程构建了spark,其中提供了预构建的二进制文件。我正在使用Spark 1.2.0,只是作为一个说明(1.4.1不适合我)
这是在Ubuntu 15.04上,但应该在14.04上同样的
1)从bashrc 中删除以下行export SCALA_HOME=/usr/local/src/scala/scala-2.10.4
export PATH=$SCALA_HOME/bin:$PATH
2)删除并重新安装scala
sudo rm -rf /usr/local/src/scala
# The following line is only needed if you installed scala another way, if so remove the #
# sudo apt-get remove scala-library scala
wget http://www.scala-lang.org/files/archive/scala-2.11.7.deb
sudo dpkg -i scala-2.11.7.deb
sudo apt-get update
sudo apt-get install scala
3)下载PreBuilt Spark并提取
wget http://d3kbcqa49mib13.cloudfront.net/spark-1.2.0-bin-hadoop2.4.tgz
tar -xzvf spark-1.2.0-bin-hadoop2.4.tgz
4)运行spark-shell
cd spark-1.2.0-bin-hadoop2.4/
./bin/spark-shell
来源(基本上我从哪里读到,这个解决方案一直在尝试和错误)
https://chongyaorobin.wordpress.com/2015/07/01/step-by-step-of-installing-apache-spark-on-apache-hadoop/
https://gist.github.com/visenger/5496675
如果你已经从http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz下载了spark包,那么交叉检查文件- "sbt/sbt-launch-0.13.5.jar"。如果它只包含小的(5-6行)html内容,那么你需要手动下载jar文件。这个html文件只是表明没有找到所需的jar文件。对于centos,您可以使用以下步骤:
- 手动下载jar:
wget http://dl.bintray.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.1/sbt-launch.jar ./sbt/sbt-launch-0.13.5.jar
禁止自动下载jar文件: - 重新安装spark:
sbt/sbt assembly
sed -i '47,68s/^/#/' sbt/sbt-launch-lib.bash
它为我工作没有改变scala安装。
sbt脚本不能正确下载sbt-launch-0.13.5.jar,因为它使用的url一定有问题。因此,它下载的文件只包含一个HTML头(没有400或302代码)。在出现更好的解决方案之前,作为一种变通方法,我会事先手动下载sbt-launch-0.13.5.jar。
在SPARK_HOME/sbt/sbt-launch-lib。bash script将第53行到第57行替换为以下
if hash curl 2>/dev/null; then
(curl --fail --location --silent ${URL1} > ${JAR_DL} ||
(rm -f "${JAR_DL}" && curl --fail --location --silent ${URL2} > ${JAR_DL})) &&
mv "${JAR_DL}" "${JAR}"
elif hash wget 2>/dev/null; then
(wget --quiet ${URL1} -O ${JAR_DL} ||
(rm -f "${JAR_DL}" && wget --quiet ${URL2} -O ${JAR_DL})) &&
mv "${JAR_DL}" "${JAR}"
else
然后再试一次,运行sbt组装命令
sbt/sbt assembly
最简单的方法是手动安装sbt,如下所示
下载SBT deb文件
wget http://dl.bintray.com/sbt/debian/sbt-0.13.5.deb
然后运行
sudo dpkg -i sbt-0.13.5.deb
sudo apt-get update
sudo apt-get install sbt
然后使用
sbt assembly
代替sbt/sbt assembly
@Frozenfire,我不确定这是否可能,但Spark文档概述说:
对于Scala API, Spark 1.4.1使用Scala 2.10。你将需要使用兼容Scala版本(2.10.x)
我想知道这是否是你有这个问题的原因:
我正在使用Spark 1.2.0,只是作为一个说明(1.4.1不适合我)
因为你有:
sudo dpkg -i scala-2.11.7.deb
下载并安装scala-2.11.7
。
我不知道,但这可能是一个线索!
PS1:这更像是对冰火的回答的评论,但我不能评论,因为缺乏声誉,我想分享这个。
PS2: build for Scala 2.11