I Recently downloaded spark package 1.4.0:

A build of Spark with "sbt/sbt clean assembly" failed with message "Error:
Invalid or corrupt jarfile build/sbt-launch-0.13.7.jar"

Upon investigation I figured out that "sbt-launch-0.13.7.jar" is downloaded
at build time and that it contained the the following:

<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

which is an HTML error message to the effect that the file is missing (from
the web server).


The script sbt-launch-lib.bash contains the following lines which determine
where the file sbt-launch.jar is downloaded from:

acquire_sbt_jar () {
  SBT_VERSION=`awk -F "=" '/sbt\.version/ {print $2}'
./project/build.properties`
  URL1=
http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/${SBT_VERSION}/sbt-launch.jar
  URL2=
http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/${SBT_VERSION}/sbt-launch.jar
  JAR=build/sbt-launch-${SBT_VERSION}.jar


The script sbt-launch.bash downloads $URL1 first, and incorrectly concludes
that it succeeded on the basis that the file sbt-launch-0.13.7.jar exists
(though it contains HTML).

I succeeded in building Spark by:

(1)  Downloading the file sbt-launch-0.13.7.jar from $URL2 and placing it
in the build directory.
(2)  Modifying sbt-launch-lib.bash to prevent the download of that file.
(3)  Restarting the download as I usually would, with "SPARK_HIVE=true
SPARK_HADOOP_VERSION=2.5.1 sbt/sbt clean assembly"


I think a lot of people will be confused by this.  Probably someone should
do some of the following:

(1)  Delete $URL1 and all references, or replace it with the
correct/current URL which points to the sbt-launch.jar(s).
(2)  Modify sbt-launch-lib.bash, so that it will not conclude that the
download of sbt-launch.jar succeeded, when the data returned is an HTML
error message.


Let me know if this is not clear, I will gladly explain in more detail or
with more clarity, if needed.

-Bryce Lobdell


A transcript of my console is below:




xxxxxxxx@ip-xx-xxx-xx-xxx:~/spark/spark-1.4.0$ SPARK_HIVE=true
SPARK_HADOOP_VERSION=2.5.1 sbt/sbt clean assembly
NOTE: The sbt/sbt script has been relocated to build/sbt.
      Please update references to point to the new location.

      Invoking 'build/sbt clean assembly' now ...

Using /usr/lib/jvm/java-7-openjdk-amd64/ as default JAVA_HOME.
Note, this will be overridden by -java-home if it is set.
Attempting to fetch sbt
Launching sbt from build/sbt-launch-0.13.7.jar
*Error: Invalid or corrupt jarfile build/sbt-launch-0.13.7.jar*
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0$ cd build/
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ ls
mvn  sbt  sbt-launch-0.13.7.jar  sbt-launch-lib.bash
*inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ unzip -l
sbt-launch-0.13.7.jar*
*Archive:  sbt-launch-0.13.7.jar*
*  End-of-central-directory signature not found.  Either this file is not*
*  a zipfile, or it constitutes one disk of a multi-part archive.  In the*
*  latter case the central directory and zipfile comment will be found on*
*  the last disk(s) of this archive.*
unzip:  cannot find zipfile directory in one of sbt-launch-0.13.7.jar or
        sbt-launch-0.13.7.jar.zip, and cannot find
sbt-launch-0.13.7.jar.ZIP, period.
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ ls
mvn  sbt  sbt-launch-0.13.7.jar  sbt-launch-lib.bash
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ ls -l
total 28
-rwxr-xr-x 1 inquidia inquidia 5384 Jun  3 01:07 mvn
-rwxr-xr-x 1 inquidia inquidia 5395 Jun  3 01:07 sbt
-rw-rw-r-- 1 inquidia inquidia  162 Aug  7 20:24 sbt-launch-0.13.7.jar
-rwxr-xr-x 1 inquidia inquidia 5285 Jun  3 01:07 sbt-launch-lib.bash
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ ls -l
total 28
-rwxr-xr-x 1 inquidia inquidia 5384 Jun  3 01:07 mvn
-rwxr-xr-x 1 inquidia inquidia 5395 Jun  3 01:07 sbt
-rw-rw-r-- 1 inquidia inquidia  *162 *Aug  7 20:24 sbt-launch-0.13.7.jar
-rwxr-xr-x 1 inquidia inquidia 5285 Jun  3 01:07 sbt-launch-lib.bash
inquidia@ip-10-102-69-107:~/spark/spark-1.4.0/build$ cat
sbt-launch-0.13.7.jar
*<html>*
*<head><title>404 Not Found</title></head>*
*<body bgcolor="white">*
*<center><h1>404 Not Found</h1></center>*
*<hr><center>nginx</center>*
*</body>*
*</html>*

Reply via email to