I processi di invio spark su un cluster Amazon EMR. Mi piacerebbe che tutta la registrazione delle scintille venisse inviata a redis/logstash. Qual è il modo corretto di configurare la scintilla in EMR per fare ciò?Il modo migliore per inviare l'accesso di apache-spark a redis/logstash su un cluster Amazon EMR
Tenere log4j: Aggiungere un'azione di bootstrap per modificare /home/hadoop/spark/conf/log4j.properties per aggiungere un appender? Tuttavia, questo file contiene già molte cose ed è un link simbolico al file conf di hadoop. Non voglio giocherellare troppo con questo dato che contiene già alcuni rootLoggers. Quale appender farebbe meglio? ryantenney/log4j-redis-appender + logstash/log4j-jsonevent-layout O pavlobaron/log4j2redis?
Passare a slf4j + logback: Escludere slf4j-log4j12 da spark-core, aggiungere log4j-over-slf4j ... e utilizzare un logback.xml con un com.cwbase.logback.RedisAppender? Sembra che questo sarà problematico con le dipendenze. Nasconderà log4j.rootLoggers già definito in log4j.properties?
Qualcos'altro che ho perso?
Cosa ne pensi?
Aggiornamento
sembra che io non riesco a seconda opzione per lavorare. Esecuzione di test va bene, ma usando spark-submit (con --conf spark.driver.userClassPathFirst = true) si finisce sempre con il temuto "Rileva sia log4j-over-slf4j.jar AND slf4j-log4j12.jar sul percorso della classe, preempting StackOverflowError. "
Stavo per percorrere la rotta log4j-over-slf4j. Penso che mi hai salvato un po 'di tempo. – Pengin
Penso che non ci sia modo di aggirarlo visto che carica i binari delle scintille fianco a fianco con il nostro barattolo di grasso e spark utilizza slf4j-log4j12. Ho provato ogni genere di cose oggi per farlo funzionare ma non ci sono riuscito. Se vuoi ancora fare un tentativo, tienimi informato sulle tue scoperte. –
un modo per aggirare questo? le librerie principali come storm e spark sono imballate con una lib predefinita. –