我想做一些非常简单的事(我相信) 我在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>
参数。
有没有人这样做过?
答案 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"