{"data":{"markdownRemark":{"html":"<p>This page explains how to setup and use the Simudyne SDK to run on top of Spark, for distributing your models.</p>\n<h2 id=\"spark-requirements\"><a href=\"#spark-requirements\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Spark requirements</h2>\n<p>The first requirement is to install Spark , running standalone or on top of Hadoop YARN. <strong>The required version is Spark 2.2.</strong></p>\n<p>We recommend using the version of Spark running on Cloudera products : <a href=\"https://www.cloudera.com/products/open-source/apache-hadoop/apache-spark.html\">https://www.cloudera.com/products/open-source/apache-hadoop/apache-spark.html</a></p>\n<p>Once Spark is installed you can check it is running correctly launching the Spark-shell in a terminal : </p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">./bin/spark-shell</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-68bde.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block; padding: 20px; max-width: 642px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.28971962616823%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABJ0AAASdAHeZh94AAABQUlEQVQoz5VS2W6DQAxcQjkDhDOcAYWiqj+VKFKi/P8fTD1uidKqL3kYeXdtj2cMZvn4xDzPOB6PP3HGsizo+h6HYUAvkRjk3DStxqIokKYpkiRBGIZ6Nsbgfr/DtP0BbdOgbVslyPMcu90OcRwr2LDdbrU5iiJ945k1fLdtW2tIeL1eYbphRN912O/3mKZJlVFBVVUPsFkhSpjLsgxlWSLLM30PgkAJb7ebKBy+FTaCcRwVdV0rVLXcmSMB1VcS10FlUSq5H/hKeD6fYab5/UHQidJUCgppWu1RAS36vq9KaNN1XSVYQduMp9MJJowTKfRhWZYm1uQrWHsulwuM9eYgkOme56kCTnccR+Nms3mdMElzsRSrRX4tRlrkr8A7B9EuBxAc+nfQL8KiqpHKnkjAfXH5JCIJC7mKZ/yn+pnwCwBa1gEi5E8DAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <picture>\n        <source\n          srcset=\"/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-38156.webp 173w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-85678.webp 345w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-5c2c3.webp 690w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-e2dab.webp 1035w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-efaec.webp 1070w\"\n          sizes=\"(max-width: 642px) 100vw, 642px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-c006b.png 173w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-484fe.png 345w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-51909.png 690w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-7c4f0.png 1035w,\n/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-68bde.png 1070w\"\n          sizes=\"(max-width: 642px) 100vw, 642px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n          src=\"/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-51909.png\"\n          alt=\"bash spark shell\"\n          title=\"\"\n          src=\"/static/bash_spark-shell-cb318999964e5c815243c27abc78d4e5-51909.png\"\n        />\n      </picture>\n      </span>\n  </span>\n  \n  </a>\n    </p>\n<p>You need to identify your <strong>Spark master URL</strong> which points towards the master node of your cluster. Above, the master URL indicates Spark is running locally (master = local[*]).\nThe master URL should generally be a <code class=\"language-text\">spark://host:port</code> type of URL on a standalone cluster.</p>\n<p>To run your model, you will need to build a fatJar file which will carry your model, the Simudyne SDK and all the necessary dependencies. You will then need to upload it to the master node of your cluster where you can submit your Spark jobs.</p>\n<p>Some more dependencies and shading are needed for your project and some will be provided by Spark.</p>\n<p class=\"code-header\">pom.xml</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token prolog\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>project</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://maven.apache.org/POM/4.0.0<span class=\"token punctuation\">\"</span></span>\n         <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:</span>xsi</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://www.w3.org/2001/XMLSchema-instance<span class=\"token punctuation\">\"</span></span>\n         <span class=\"token attr-name\"><span class=\"token namespace\">xsi:</span>schemaLocation</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>modelVersion</span><span class=\"token punctuation\">></span></span>4.0.0<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>modelVersion</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>simudyne<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>simudyne-maven-java<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>1.0-SNAPSHOT<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>properties</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>maven.compiler.source</span><span class=\"token punctuation\">></span></span>1.8<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>maven.compiler.source</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>maven.compiler.target</span><span class=\"token punctuation\">></span></span>1.8<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>maven.compiler.target</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>simudyne.version</span><span class=\"token punctuation\">></span></span>2.2.0<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>simudyne.version</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>properties</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>repositories</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>repository</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>id</span><span class=\"token punctuation\">></span></span>simudyne.jfrog.io<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>id</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>name</span><span class=\"token punctuation\">></span></span>simudyne.jfrog.io<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>name</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>url</span><span class=\"token punctuation\">></span></span>https://simudyne.jfrog.io/simudyne/releases<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>url</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>repository</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>repositories</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependencies</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>simudyne<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>simudyne-nexus-server_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${simudyne.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>simudyne<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>simudyne-core_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${simudyne.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>simudyne<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>simudyne-core-abm_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${simudyne.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependencies</span><span class=\"token punctuation\">></span></span>\n\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>build</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>plugins</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>plugin</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>org.codehaus.mojo<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>exec-maven-plugin<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>1.2.1<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>configuration</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>mainClass</span><span class=\"token punctuation\">></span></span>Main<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>mainClass</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>configuration</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>plugin</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>plugin</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>org.apache.maven.plugins<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>maven-shade-plugin<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>3.1.0<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>configuration</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactSet</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>excludes</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>META-INF/*<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>com.fasterxml.jackson.core:jackson-databind<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>com.fasterxml.jackson.module:jackson-module-scala_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>com.twitter:chill_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>io.netty:netty-all<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>org.apache.commons:commons-math3<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>org.apache.commons:commons-lang3<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>commons-net<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>org.slf4j:slf4j-api<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>org.xerial.snappy:snappy-java<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>exclude</span><span class=\"token punctuation\">></span></span>org.scala-lang:scala-library<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>exclude</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>excludes</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactSet</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>transformers</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>transformer</span> <span class=\"token attr-name\">implementation</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>org.apache.maven.plugins.shade.resource.AppendingTransformer<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>resource</span><span class=\"token punctuation\">></span></span>reference.conf<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>resource</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>transformer</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>transformers</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>relocations</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>relocation</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>pattern</span><span class=\"token punctuation\">></span></span>org.json4s<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>pattern</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>shadedPattern</span><span class=\"token punctuation\">></span></span>shaded.json4s<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>shadedPattern</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>relocation</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>relocations</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>configuration</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>executions</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>execution</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>phase</span><span class=\"token punctuation\">></span></span>package<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>phase</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>goals</span><span class=\"token punctuation\">></span></span>\n                            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>goal</span><span class=\"token punctuation\">></span></span>shade<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>goal</span><span class=\"token punctuation\">></span></span>\n                        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>goals</span><span class=\"token punctuation\">></span></span>\n                    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>execution</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>executions</span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>plugin</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>plugins</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>build</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>project</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div class=\"ui segment warning message\">\nSpecific dependencies will be needed depending on your usage of Spark. Please read the related sections:\n<ul>\n<li><a href=\":version/reference/distributed_computation/spark_setup#spark-model-runner\">Running a distributed multirun</a></li>\n<li><a href=\":version/reference/distributed_computation/spark_graph\">Running a single distributed simulation</a></li>\n</ul>\n</div>\n<p>Here is the command to build your fatJar file :</p>\n<p class=\"code-header\">Maven</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">mvn -s settings.xml compile package</code></pre></div>\n<p>You can then upload this jar file to your master node as well as the simudyneSDK.properties file and you license file.\nBy default the license file will be looked for in the directory you called <code class=\"language-text\">spark-submit</code> from, you can change this behaviour using the configuration <code class=\"language-text\">core.license-file</code>.</p>\n<h2 id=\"spark-model-runner\"><a href=\"#spark-model-runner\" aria-hidden=\"true\" class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Spark model runner</h2>\n<p>The spark model runner allows you to run the same simulation multiple time on a spark cluster to create a distributed multirun.\nRunning a distributed multirun simulation depends on the package <code class=\"language-text\">core-runner-spark</code> which needs to be imported in your project:</p>\n<p class=\"code-header\">pom.xml</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>dependency</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>groupId</span><span class=\"token punctuation\">></span></span>simudyne<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>groupId</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>artifactId</span><span class=\"token punctuation\">></span></span>simudyne-core-runner-spark_2.11<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>artifactId</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>version</span><span class=\"token punctuation\">></span></span>${simudyne.version}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>version</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>dependency</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>To enable Simudyne SDKto use the Spark runner, you need to uncomment the following line in your properties file:</p>\n<p class=\"code-header\">simudyneSDK.properties</p>\n<div class=\"gatsby-highlight\" data-language=\"scala\"><pre class=\"language-scala\"><code class=\"language-scala\">### CORE<span class=\"token operator\">-</span>RUNNER ###\n# core<span class=\"token operator\">-</span>runner<span class=\"token punctuation\">.</span>runner<span class=\"token operator\">-</span>backend <span class=\"token operator\">=</span> simudyne<span class=\"token punctuation\">.</span>core<span class=\"token punctuation\">.</span>exec<span class=\"token punctuation\">.</span>runner<span class=\"token punctuation\">.</span>spark<span class=\"token punctuation\">.</span>SparkRunnerBackend</code></pre></div>\n<p>Then you need to configure the properties related to core-runner-spark.\nYou have two possibilities to configure them: </p>\n<ul>\n<li>Set configuration parameters as command parameters when using <code class=\"language-text\">spark-submit</code> command (<strong>recommended</strong>)</li>\n<li>Modify <code class=\"language-text\">core-runner-spark</code> properties in the <code class=\"language-text\">simudyneSDK.properties</code> file</li>\n</ul>\n<p>Some properties are already listed with default values in <code class=\"language-text\">simudyneSDK.properties</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"scala\"><pre class=\"language-scala\"><code class=\"language-scala\">### CORE<span class=\"token operator\">-</span>RUNNER<span class=\"token operator\">-</span>SPARK ###\ncore<span class=\"token operator\">-</span>runner<span class=\"token operator\">-</span>spark<span class=\"token punctuation\">.</span>master<span class=\"token operator\">-</span>url <span class=\"token operator\">=</span> local<span class=\"token punctuation\">[</span><span class=\"token operator\">*</span><span class=\"token punctuation\">]</span>\ncore<span class=\"token operator\">-</span>runner<span class=\"token operator\">-</span>spark<span class=\"token punctuation\">.</span>log<span class=\"token operator\">-</span>level <span class=\"token operator\">=</span> WARN\n# core<span class=\"token operator\">-</span>runner<span class=\"token operator\">-</span>spark<span class=\"token punctuation\">.</span>executor<span class=\"token punctuation\">.</span>memory <span class=\"token operator\">=</span> <span class=\"token number\">2</span>g\n# core<span class=\"token operator\">-</span>runner<span class=\"token operator\">-</span>spark<span class=\"token punctuation\">.</span>partitions <span class=\"token operator\">=</span> <span class=\"token number\">24</span>\n#core<span class=\"token operator\">-</span>runner<span class=\"token operator\">-</span>spark<span class=\"token punctuation\">.</span>task<span class=\"token punctuation\">.</span>cpus <span class=\"token operator\">=</span> <span class=\"token number\">1</span></code></pre></div>\n<p>You must be aware that a property set in the <code class=\"language-text\">simudyneSDK.properties</code> file will override the one passed to the <code class=\"language-text\">spark-submit</code>, for this reason we recommend only using properties based on configuration for testing, and to use spark-submit based configuration when possible.</p>\n<p>You can then submit your job using <code class=\"language-text\">spark-submit</code>. Here is a example with some configurations options:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">spark-submit --class Main --master <span class=\"token operator\">&lt;</span>sparkMasterURL<span class=\"token operator\">></span>  --deploy-mode client --files simudyneSDK.properties,mylicense.license path-to-fat-jar.jar</code></pre></div>\n<div class=\"ui segment info message\">\n<h4>Including the Simudyne SDK properties and license</h4>\nThe Simudyne SDK cannot run without the config field and license on every node, in order to do this, we pass the files to every node using the parameter `--files` (as in the command above). Edit the command to pass the full path to the actual properties files and license file so these can be found and copied onto the clusters nodes.\n</div>\n<p>This command will run the <strong>main</strong> function of the class <strong>Main</strong> and distribute it on Spark. You can then access the console through the config parameters <code class=\"language-text\">nexus-server.hostname</code> and <code class=\"language-text\">nexus-server.port</code>.</p>\n<p>They default to <code class=\"language-text\">localhost</code> and <code class=\"language-text\">8080</code>. You can also interact with the server through the <a href=\":version/rest_api/rest_api\">REST API</a></p>\n<p><strong>spark-submit</strong> allows you to configure Spark. You need to choose a configuration that best suits your cluster.\nTo learn more about Spark configuration, refer to the <a href=\"https://spark.apache.org/docs/latest/submitting-applications.html\">official documentation</a>.</p>\n<p>Some <a href=\"http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/\">useful resources</a> can be found on Cloudera's website.</p>\n<div class=\"ui segment info message\">\nIf you wish to use the runner directly, and not use the console nor the REST API, you can use the:\n<p><a href=\":version/reference/run_mode/multirun_setup#running-a-distributed-multirun-with-spark\">SparkModelRunner</a> </p>\n</div>","headings":[{"value":"Spark requirements","depth":2},{"value":"Spark model runner","depth":2}],"frontmatter":{"title":"Spark setup","toc":null,"experimental":null}},"site":{"siteMetadata":{"title":"Simudyne Docs","latestVersion":"2.6"}}},"pageContext":{"absolutePath":"/home/vsts/work/1/s/content/2.3/reference/distributed_computation/spark_setup.md","versioned":true,"version":"2.3","kind":"reference","pagePath":"/reference/distributed_computation/spark_setup","chronology":{"prev":{"name":"Distributed Computation","path":"/reference/distributed_computation"},"next":{"name":"Spark Graph","path":"/reference/distributed_computation/spark_graph"}},"lastUpdated":"2026-04-21T13:56:54.843Z"}}