私はsparkストリーミングでloggerにlogbackを使用しようとしています。私がspark-submitを使って仕事を提出しようとしている間、私は以下のように例外を受け取ります。 org.slf4j.impl.Log4jLoggerFactoryが consumer.spark.LogBackConfigLoaderで ch.qos.logback.classic.LoggerContextにキャストすることはできません(LogBackConfigLoader:スレッド "メイン" とjava.lang.ClassCastExceptionでSpark 2.1.1 Log4jLoggerFactoryをLoggerContextにキャストすることはできません
例外(NativeMethodAccessorImpl.java:62) のの場合、 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(M (sparkSubmit.scala:743) org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain(SparkSubmit.scala:743) at org.apache.spark.deploy.SparkSubmit $$ anon $ 1.run(SparkSubmit.scala:169) org.apache.spark.deploy.SparkSubmit $$ anon $ 1.run(SparkSubmit.scala:167) at java.security.AccessController.doPrivileged(ネイティブメソッド) でのorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656)ののjavax.security.auth.Subject.doAs(Subject.java:422) org.apache.spark.deploy。 SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:167) at org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:212)org.apache.spark.deploy.SparkSubmit.mainで (SparkSubmit.scala)
私のpom.xmlがある:org.apache.spark.deploy.SparkSubmit $ .main(126 SparkSubmit.scala)で:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.6.1</slf4j.version>
<logback.version>1.2.3</logback.version>
</properties>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
私のlogbackのコードは次のとおりです。
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
configurator.doConfigure(externalConfigFileLocation);
私の火花提出するコマンドは次のとおりです。
〜/ spark-2.1.1-bin-hadoop2.6/bin/spark-submit - マスター糸 --deploy-mode client --driver-memory 4g --executor-memory 2g --executor-core 4 --class consumer.spark.Sample〜/ SparkStreamingJob/log_testing.jar 〜/ SparkStreamingJob /火花ジョブ/ configに/ confに/ logback.xml
ログバックコードのインポートパッケージは何ですか?どの実装が正確に使用されているかを確認するのが難しくなります。具体的には、 'LoggerFactory'はどのパッケージから来ますか? –