Je lance des applications pyspark depuis pycharm sur mon propre poste de travail vers un cluster à 8 nœuds. Ce cluster a également des paramètres encodés dans spark-defaults.conf et spark-env.sh
Voici comment obtenir ma variable de contexte 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")
Je veux voir la config efficace qui est utilisée dans mon journal. Cette ligne
.config("spark.logConf", "true") \
l'API spark devrait enregistrer sa configuration effective dans le journal sous la forme INFO, mais le niveau de journalisation par défaut est défini sur WARN et, de ce fait, je ne vois aucun message.
fixer cette ligne
sc.setLogLevel("INFO")
affiche les messages INFO à venir, mais il est trop tard.
Comment définir le niveau de journalisation par défaut avec lequel commence spark?
http://spark.Apache.org/docs/latest/configuration.html#configuring-logging
Configuration de la journalisation
Spark utilise log4j pour la journalisation. Vous pouvez le configurer en ajoutant un fichier log4j.properties dans le répertoire conf. Une façon de commencer est de copier le fichier log4j.properties.template existant qui s'y trouve.
Le blog suivant sur "Comment se connecter à spark" https://www.mapr.com/blog/how-log-Apache-spark suggère un moyen de configurer log4j et suggère inclut la direction des journaux de niveau INFO dans un fichier.