gpt4 book ai didi

Scala 2.11 Spark 2.0 hortonworks-spark/shc sbt 程序集

转载 作者:行者123 更新时间:2023-12-04 19:48:02 24 4
gpt4 key购买 nike

我尝试使用 hortonworks-spark/shc 组装 Scala 2.11 Spark 2.0 应用程序访问 hbase。

依赖集看起来很简单:

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.0.2" % "provided",
"com.hortonworks" % "shc-core" % "1.0.1-2.0-s_2.11"
)

当我尝试在 Fat jar 中组装应用程序时,问题就来了,因为有很多不同版本的 transient 依赖,然后组装插件抛出重复错误。一个例子:

deduplicate: different file contents found in the following:
[error] /home/search/.ivy2/cache/org.mortbay.jetty/jsp-2.1/jars/jsp-2.1-6.1.14.jar:org/apache/jasper/xmlparser/XMLString.class
[error] /home/search/.ivy2/cache/tomcat/jasper-compiler/jars/jasper-compiler-5.5.23.jar:org/apache/jasper/xmlparser/XMLString.class

此外,我不知道它是否正确包含在 jar 依赖项中,如 org.apache.hbase:hbase-server:1.1.2

所以,基本上,问题是:有人知道使用这个库和 sbt 组装 Scala Spark 应用程序的正确方法,并且可以提供示例吗? (也许将其添加到 hortonworks-spark/shc 的文档中

备注:hortonworks-spark/shc不包含在 spark-packages 中所以我不能使用 --packages 选项,如果它不是 jars 的本地副本。我使用的是 EMR,所以我没有预配置的集群来复制 jar 而不会增加部署的复杂性。

最佳答案

您应该指定 Readme 中提到的 mergeStrategy .您可以在 spark 节点上提供公共(public)库,而不是每次都将它们包含在 fat.jar 中。粗略的做法是将它们上传到每个 worker 并添加到类路径中。

关于Scala 2.11 Spark 2.0 hortonworks-spark/shc sbt 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com