2016-08-09 2 views
0

Azure HDInsight Linux 클러스터에서 spark Java 응용 프로그램을 개발하려고합니다. 우리는 Livy를 통해 신청서를 제출할 수 있었고 제대로 작동합니다.Spark Java 응용 프로그램에서 Azure에 로그인

우리가 직면 한 문제는 로깅과 관련이 있습니다. RollingFileAppender를 사용하면 출력 .log 파일의 경로를 지정해야하기 때문에 여기에서 log4j를 어떻게 사용할 수 있습니까? 이 경우 BLOB 저장소에 로그를 써야합니다. 그러나 정상적인 로깅은 효과가 없을 것이라고 생각합니다.

우리는 Azureinsights를 통해 Azure 자체에서 제공하는 일부 로깅 메커니즘을 발견했습니다. 그러나 이들 모두는 웹 프로젝트 용으로 만들어졌으며 Java 어플리케이션에서 작동하지 않습니다.

spark java 응용 프로그램에서 응용 프로그램 로깅을 구현하는 방법을 알려주십시오. 미래의 사람들은 조직에서 Splunk를 사용하여 로그 작업을 할 수 있습니다.

귀하의 도움을 기다리겠습니다.

감사합니다. Shamik.

답변

1

필자는 BLOB 저장소에 로그를 쓰거나 BLOB 저장소를 기반으로 HDFS를 쓰고 싶다고 생각합니다.

BLOB 저장소의 컨테이너에 로그인하는 경우 log4j (예 : AzureLogAppender)에 제 3 자 애플릿을 사용할 수 있습니다. 또는 테이블 스토리지에 로그인하는 다른 방법은 log4j (예 : log4j-azureazure-log4j)에 대해 이러한 appenders를 사용하는 것입니다.

Azure에서 HDFS에 로그를 기록하려면 다음과 같은 두 가지 방법이 있습니다.

  1. log4j에 대한 사용자 정의 appender를 작성하려면 article을 참조하십시오.
  2. Apache Flume appender for Log4j을 사용하여 HDFS에 쓰는 로그를 Flume으로 보내면 blog을 참조하여 Azure HDInsight에서 Flume을 사용하는 방법을 알 수 있습니다.
+0

감사합니다. AzureLogAppender를 사용하여 검사했지만 로그가 생성되지 않았는지 확인했습니다. 다른 옵션을 시도하고 결과를 게시합니다. – Shamik

+0

AzureLogAppender가 제대로 작동한다고 생각하지만 문제점은 응용 프로그램 특정 log4j가 사용되지 않는 Livy를 통해 Spark 작업을 제출할 때입니다. 그렇게 할 방법이 있습니까? PropertyConfigurator.configure() 메소드를 사용하여 검사했지만 특정 log4j 응용 프로그램이 선택되지 않았습니다. – Shamik

+0

@Shamik. 두 가지 방법이 있습니다. 1. 클러스터와 연관된 클러스터 저장 영역에 jar 파일을 업로드하십시오. 명령 줄 유틸리티 인 AzCopy를 사용하여 그렇게 할 수 있습니다. https://azure.microsoft.com/en-us/documentation/articles/hdinsight-apache-spark-livy-rest-interface/#submit-a-batch-job-the-cluster를 참조하십시오. 2. 기본적으로 Java 및 Scala 응용 프로그램은 모두 LIvy API를 통해 제출할 수있는 .jar 파일로 패키지됩니다. –

관련 문제