스파크 스트리밍에서 logger에 logback을 사용하려고합니다. spark-submit을 통해 작업을 제출하려고 시도하는 동안 나는 예외가 발생합니다. 스레드에서Spark 2.1.1 Log4jLoggerFactory를 LoggerContext에 캐스팅 할 수 없습니다.
이예외 "주요"java.lang.ClassCastException가 :. org.slf4j.impl.Log4jLoggerFactory가 consumer.spark.LogBackConfigLoader에서 ch.qos.logback.classic.LoggerContext 캐스트 할 수없는 (LogBackConfigLoader 된 .java : 18) consumer.spark.Sample.main (Sample.java:18) sun.reflect.NativeMethodAccessorImpl.invoke에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법)에서 에서 (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (M org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala : 743) 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.security.auth.Subject.doAs (Subject.java:422)에서 org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1656) 에서 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 : 126) org.apache.spark.deploy.SparkSubmit.main에서 (SparkSubmit.scala)
내 pom.xml 파일이 :
<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 - 마스터 사 - 배포 모드 클라이언트 - 드라이버 메모리 4g --executor-memory 2g --executor-core 4 --class consumer.spark.Sample ~/SparkStreamingJob/log_testing.jar ~/SparkStreamingJob/스파크 작업/설정/conf의 그것은이다
로깅 코드의 가져온 패키지는 무엇입니까? 정확히 어떤 구현을 사용하는지 확인하기가 어렵습니다.구체적으로 어떤 패키지가'LoggerFactory'를 가져 왔습니까? –