nigel created SPARK-1881:
----------------------------

             Summary: Executor caching
                 Key: SPARK-1881
                 URL: https://issues.apache.org/jira/browse/SPARK-1881
             Project: Spark
          Issue Type: Improvement
          Components: Mesos
    Affects Versions: 1.0.0
         Environment: centos 6.5, mesos 0.18.1
            Reporter: nigel
            Priority: Minor


The problem is that the executor is copied for each run. We have a cluster 
where the disks are of moderate size and each executor is nearly 170MB. This 
executor is slow to copy and multiple runs take up a significant amount of 
space.

The improvement would be to make it smaller.

Currently the examples are included in there, which are not needed for 
execution. It is easy to take them out, but it might be better to not include 
them in the default build.

Another improvement might be to cache the executor jar. The script below will 
make a 'sparklite' executor which only downloads the jar file once (until the 
tmp dir is wiped). The scripts (small) are downloaded each time as before.

This example would need more work, the source and dest are currently hard-coded 
and it might be a good idea to check file dates and or checksums in case 
someone was uploading jars with the same version.

This might be a bit redundant, depending on what happens with other work on 
executor caching.

Comments welcome.

--------------------------
mkdir sparklite

echo '58c58
<   if [ -f "$FWDIR/RELEASE" ]; then
---
>   if [ -f "$FWDIR/RELEASE" ] && [ -f "$FWDIR"/lib/spark-assembly*hadoop*.jar 
> ]; then
60c60
<   else
---
>   elif [ -f "$ASSEMBLY_DIR"/spark-assembly*hadoop*.jar ]; then
61a62,68
>   else
> #Try the local one. If not there, download from hdfs
>     if [ ! -f /tmp/sparklite/spark-assembly*hadoop*.jar ]; then
>         mkdir /tmp/sparklite 2>/dev/null
>         hdfs dfs -get /spark/spark-assembly*-hadoop*.jar /tmp/sparklite/
>     fi    
>     ASSEMBLY_JAR=$(ls /tmp/sparklite/spark-assembly*hadoop*.jar 2>/dev/null)
64a72
> ' > cc.patch

tar -C sparklite -xf spark-1.0.0.tgz 
cd sparklite
hdfs dfs -put ./spark-1.0.0/lib/spark-assembly-1.0.0-SNAPSHOT-hadoop2.4.0.jar 
/spark/
rm -f spark-1.0.0/lib/*assembly*
rm -f spark-1.0.0/lib/*example*
rm -f spark-1.0.0/bin/*.cmd
rm -rf spark-1.0.0/ec2
rm -rf spark-1.0.0/lib
rm -rf spark-1.0.0/conf
rm -rf spark-1.0.0/examples

patch spark-1.0.0/bin/compute-classpath.sh < cc.patch

rm -f spark-1.0.0.tgz
tar zcf spark-1.0.0.tgz spark-1.0.0
hdfs dfs -rm /spark/spark-1.0.0.tgz
hdfs dfs -put ./spark-1.0.0.tgz /spark/
------------------------



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to