我们正在尝试在 Azure HDInsight Linux 集群中开发 Spark Java 应用程序。我们已经能够通过 Livy 提交申请,并且运行良好。
我们面临的问题与日志记录有关。这里我们如何使用log4j,因为如果我们使用RollingFileAppender,那么我们必须放置输出.log文件的路径。在我们的例子中,我们必须将日志写入 blob 存储中。但我们认为正常的日志记录不起作用。
我们发现 Azure 本身通过 Azureinsights 提供了一些日志记录机制,但我猜它们都是为 Web 项目制作的,并且无法在我们的 java 应用程序中工作。
请您帮助我如何从 Spark Java 应用程序实现应用程序日志记录?将来组织中的人员可能会考虑使用类似 Splunk 的工具来处理日志。
期待您的帮助。
谢谢, 沙米克.
最佳答案
根据我的理解,我认为你想将日志写入Blob存储或基于Blob存储的HDFS中。
所以对于登录blob存储的容器,我的建议是可以尝试使用log4j
的第三方appender,比如AzureLogAppender 。或者登录表存储的另一种方法是使用这些 log4j
的附加程序,例如 log4j-azure和 azure-log4j .
如果要将日志写入Azure上的HDFS,有以下两种方法。
- 您可以引用article为 log4j 编写自定义附加程序。
- 使用Apache Flume appender for Log4j将日志发送到Flume并写入HDFS,可以引用blog了解如何将 Flume 与 Azure HDInsight 结合使用。
关于java - 从 Spark Java 应用程序登录 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860298/