我正在开发一个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 .
这让我很难过......真的需要你的帮助!~~~~