用于在EMR spark集群中下载jar依赖项的bootstrap脚本

时间:2017-10-30 16:38:33

标签: apache-spark amazon-s3 sbt amazon-emr

我想做一些非常简单的事(我相信) 我在EMR Spark中运行自定义jar。现在我做了类似

的事情
sbt pack

它创建了一个胖罐(80MB-120MB),这在S3中上传很痛苦。

我想要的是使用

--jars

要获取文件夹中的所有jar,在S3中上传一次,然后,每次我想上传新jar都会上传已编译的,没有依赖项。

我相信它可能会发生在bootstrap.sh中,它会将所有jar复制到集群中,然后使用<body> <div class=“.angular-micro-app”></div> … <div class=“.angular-micro-app”></div> <!-- this element is NOT bootstrapping --> </body> 参数。

有没有人这样做过?

2 个答案:

答案 0 :(得分:0)

在build.sbt中添加依赖项,如spark-core,spark-sql,如提供的那样

"org.apache.spark" %% "spark-core" % "1.5.1" % "provided",
"org.apache.spark" %% "spark-sql" % "1.5.1" % "provided",

还有 您可以添加编译时和构建程序集中提供的其他依赖项。然后正如您在spark-submit期间提到的那样,您可以添加依赖项,例如

--jars a.jar,b.jar

答案 1 :(得分:0)

这里是一个示例: 首先,创建bootstrap.sg脚本。

    sudo wget http://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.6.0-spark2.3-s_2.11/graphframes-0.6.0-spark2.3-s_2.11.jar -P /usr/lib/spark/jars/
    sudo wget http://central.maven.org/maven2/com/typesafe/scala-logging/scala-logging-api_2.11/2.1.2/scala-logging-api_2.11-2.1.2.jar -P /usr/lib/spark/jars/
    sudo wget http://central.maven.org/maven2/com/typesafe/scala-logging/scala-logging-slf4j_2.11/2.1.1/scala-logging-slf4j_2.11-2.1.1.jar -P /usr/lib/spark/jars/
    sudo wget https://dl.bintray.com/spark-packages/maven/neo4j-contrib/neo4j-spark-connector/2.2.1-M5/neo4j-spark-connector-2.2.1-M5.jar -P /usr/lib/spark/jars/

将bootstrap.sh上载到S3,比如说'your_bucket'
最后,在您的EMR创建脚本中添加以下行:

--bootstrap-actions Path="s3://your_bucket/bootstrap.sh"