我正在尝试按照这里提到的步骤在kubernetes中运行一个示例spark作业:https://spark.apache.org/docs/latest/running-on-kubernetes.html。
我正在尝试将spark驱动程序和执行器日志发送到Splunk。spark是否提供了任何配置来执行相同的操作?如何在spark-submit命令中发送Splunk配置,如HEC端点、端口、令牌等?
我确实尝试过将它作为args传递给spark驱动程序
bin/spark-submit
--deploy-mode cluster
--class org.apache.spark.examples.JavaSparkPi
--master k8s://http://127.0.0.1:8001
--conf spark.executor.instances=2
--conf spark.app.name=spark-pi
--conf spark.kubernetes.container.image=gcr.io/spark-operator/spark:v2.4.4
--conf spark.kubernetes.authenticate.driver.serviceAccountName=<account>
--conf spark.kubernetes.docker.image.pullPolicy=Always
--conf spark.kubernetes.namespace=default
local:///opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar
--log-driver=splunk
--log-opt splunk-url=<url:port>
-—log-opt splunk-token=<token>
--log-opt splunk-index=<index>
--log-opt splunk-sourcetype=<sourceType>
--log-opt splunk-format=json但是日志没有被转发到所需的索引。
我正在使用spark版本2.4.4来运行spark-submit。
提前感谢您的任何投入!!
发布于 2020-01-26 05:15:02
嗨,欢迎来到Stackoverflow。
我已经在网上搜索了一段时间,试图找到与你的Spark + Splunk用法类似的问题案例。我设法意识到的是,你可能混合了几种东西。参考Docker文档中关于Splunk logging driver的内容,您似乎会尝试使用‘`spark submit’重现相同的步骤。不幸的是,对你来说,它不是这样工作的。
基本上,脚本中local:///opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar ...之后的所有配置选项都是org.apache.spark.examples.JavaSparkPi#main方法的程序参数,该方法(除非您对其进行自定义)完全忽略它们。
您需要做的是将Kubrnetes集群连接到Splunk API。其中一种方法是在Kubernetes集群上安装Splunk Connector。根据您的环境具体情况,可能还有其他方法来实现这一点,但阅读文档是一个很好的起点。
希望它能指引你找到正确的道路。
https://stackoverflow.com/questions/59897086
复制相似问题