我从我自己的工作站上的pycharm启动pyspark应用程序到8节点集群。此群集还具有以spark-defaults.conf和spark-env.sh
编码的设置这就是我获取spark上下文变量的方法。
spark = SparkSession \
.builder \
.master("spark://stcpgrnlp06p.options-it.com:7087") \
.appName(__SPARK_APP_NAME__) \
.config("spark.executor.memory", "50g") \
.config("spark.eventlog.enabled", "true") \
.config("spark.eventlog.dir", r"/net/share/grid/bin/spark/UAT/SparkLogs/") \
.config("spark.cores.max", 128) \
.config("spark.sql.crossJoin.enabled", "True") \
.config("spark.executor.extraLibraryPath","/net/share/grid/bin/spark/UAT/bin/vertica-jdbc-8.0.0-0.jar") \
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \
.config("spark.logConf", "true") \
.getOrCreate()
sc = spark.sparkContext
sc.setLogLevel("INFO")
我想查看我日志中使用的有效配置。这一行
.config("spark.logConf", "true") \
应该使spark api将其有效配置作为INFO记录到日志中,但默认日志级别设置为WARN,因此我看不到任何消息。
设置此行
sc.setLogLevel("INFO")
显示INFO消息向前发展,但到那时为时已晚。
如何设置spark以?开头的默认日志记录级别?
答案 0 :(得分:2)
您还可以像下面这样以编程方式更新日志级别,从JVM中获取spark对象,并像下面这样
def foobar(s:String) = {
val f = foo(s)
// if f is successful return f else return bar(s)
f.biflatMap(_ => bar(s), _ => f)
}
如果您需要更多详细信息,请随时发表评论
答案 1 :(得分:1)
http://spark.apache.org/docs/latest/configuration.html#configuring-logging
配置记录
Spark使用log4j进行日志记录。 您可以通过在conf目录中添加log4j.properties文件来配置它。一种方法是复制位于那里的现有log4j.properties.template。
以下关于“如何登录spark”的博客https://www.mapr.com/blog/how-log-apache-spark提供了一种配置log4j的方法,并提供了包含将INFO级别日志定位到文件中的建议。 < /强>
答案 2 :(得分:0)
您需要编辑$ SPARK_HOME / conf / log4j.properties文件(如果没有,请创建一个文件)。现在,如果您通过spark-submit
提交代码,则需要以下行:
log4j.rootCategory=INFO, console
如果要在pyspark
控制台中使用INFO级日志,则需要以下行:
log4j.logger.org.apache.spark.api.python.PythonGatewayServer=INFO