Skip to content

Find a way to override Spark memory allocation from docker run command #4

Description

@davidonlaptop

Memory allocation is hardcoded in adam-submit launch script

If there is not enough memory allocated to Adam / Spark, Adam may crash. By default, only 512MB is allocated to java processes. Here's a workaround to fix this issue

Download a larger BAM file and start a bash shell in an ADAM container:

mkdir -p ~/data/1kg/samples/hg00096/
wget -nH --cut-dirs=99 \
     -P ~/data/1kg/samples/hg00096/  \
     ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00096/alignment/HG00096.chrom20.ILLUMINA.bwa.GBR.low_coverage.20120522.bam

Then, start an ADAM container:

docker run --rm -ti -v $HOME/data/1kg/samples/hg00096:/data gelog/adam bash
root@42c257dcfbcc:/# 

Once inside the container, run ADAM with 1.5GB of RAM (the SPARK_DRIVER_MEMORY and SPARK_EXECUTOR_MEMORY variables):

root@42c257dcfbcc:/# SPARK_DRIVER_MEMORY=1500m SPARK_EXECUTOR_MEMORY=1500m \
    adam-submit transform \
    /data/HG00096.chrom20.ILLUMINA.bwa.GBR.low_coverage.20120522.bam \
    /data/HG00096.chrom20.ILLUMINA.bwa.GBR.low_coverage.20120522.adam
root@42c257dcfbcc:/#

[UPDATE: June 2nd 2015]: The adam-submit script in Adam 0.16.0 now allocates 4 GB by default see here. If you need more than 4GB, then we need to find a way to override this parameter when running the container. The adam-submit script accepts the --conf spark.executor.memory="1g" option, but it has no effect.

Please contact us if you find a more elegant way to solve this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions