我正在开发一个Spark项目 . 现在我想导入一个库 elastic4s . 在sbt配置文件中,我使用:

val elastic4sVersion = "5.4.5"
libraryDependencies ++= Seq(
                         "com.sksamuel.elastic4s" %% "elastic4s-core" % elastic4sVersion,
                         // for the tcp client
                         "com.sksamuel.elastic4s" %% "elastic4s-tcp" % elastic4sVersion,

                         // for the http client
                         "com.sksamuel.elastic4s" %% "elastic4s-http" % elastic4sVersion).map(_.force())
//exclusion
libraryDependencies ~= { _.map(_.exclude("org.slf4j", "slf4j-log4j12")) }

当没有排除 log4j 时,当我执行时:

val client = HttpClient(ElasticsearchClientUri("localhost", 9200))

发生错误:

SLF4J:类路径包含多个SLF4J绑定 . SLF4J:在[jar:file:/home/junlang/spark-2.2.0/MySpark/assembly/target/scala-2.11/jars/slf4j-log4j12-1.7.16.jar!/ org / slf4j / impl /中找到绑定StaticLoggerBinder.class] SLF4J:在[jar:file:/home/junlang/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.16.jar!/ org / slf4j / impl中找到绑定/StaticLoggerBinder.class] SLF4J:有关说明,请参阅http://www.slf4j.org/codes.html#multiple_bindings . SLF4J:实际绑定的类型为[org.slf4j.impl.Log4jLoggerFactory] log4j:WARN没有为logger找到appender(com.sksamuel.elastic4s.http.HttpClient $) . log4j:WARN请正确初始化log4j系统 . log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig .

似乎我的Spark源代码也包含 log4j ,这会导致多个绑定异常 .

然后我在sbt配置文件中添加排除代码,并发生另一个错误:

log4j:WARN没有为logger找到appender(com.sksamuel.elastic4s.http.HttpClient $) . log4j:WARN请正确初始化log4j系统 . log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig .

这让我很难过......真的需要你的帮助!~~~~