我一直在尝试使用tutorial安装spark,每次运行命令sbt / sbt程序集时,都会收到错误“错误:无效或损坏jarfile sbt / sbt-launch-0.13.5.jar “
我已经尝试了一切:将sbt文件单独添加到spark文件夹中的sbt文件夹,单独安装sbt,检查下载并重新安装,但是徒劳无功。关于我做错了什么的建议?感谢。
答案 0 :(得分:32)
好的,玩了一会儿后我终于明白了,希望这对你也有用。该教程构建了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
答案 1 :(得分:2)
如果您已从http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz下载了spark包,则交叉检查文件 - " sbt / sbt-launch-0.13.5.jar"。如果它只包含小(5-6行)html内容,那么你需要手动下载jar文件。这个html文件只是表明找不到所需的jar文件。您可以按照以下步骤使用centos:
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
sed -i '47,68s/^/#/' sbt/sbt-launch-lib.bash
sbt/sbt assembly
在不改变scala安装的情况下,它对我有用。希望它有所帮助。
答案 2 :(得分:1)
sbt脚本无法正确下载sbt-launch-0.13.5.jar,因为它正在使用的URL一定有问题。因此,它下载的文件只包含一个HTML标题(400或302代码)。在更好的解决方案可用之前,作为一种解决方法,我会事先手动下载sbt-launch-0.13.5.jar。
答案 3 :(得分:0)
在 SPARK_HOME / sbt / sbt-launch-lib.bash 脚本中,使用以下内容将第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
然后构建使用
来自spark home文件夹的sbt assembly
而不是sbt/sbt assembly
答案 4 :(得分:0)
@Frozenfire,我不确定是否可能,但Spark documentation Overview说:
对于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:这是对Frozenfire的回答的更多评论,但由于缺乏声誉我无法评论,我想分享这个。