Logging applicativo per ambienti
distribuiti Hadoop-based
Monica Franceschini
Solution Architecture Manager
Big Data & Analytics Competency Center
Engineering
Lo scenario
• Ecosistema Hadoop (Cloudera)
• Applicazioni Spark (Scala) distribuite, Java, Java Webapp
• Utilizzo di Log4j
• Consultazione dei log centralizzata
• Dedicato agli sviluppatori
• Progetto Big Data per il calcolo delle curve orarie
di consumo energetico
• Italia
• Altre countries
• Data Science Lab di Engineering con finalità
analitiche
Ambiti di applicazione
?
Dove sono i log di Spark?
• I log sono distribuiti nei worker-nodes e suddivisi per application_id:
$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX
• Se yarn log aggregation attivato directory = YARN_APP_LOGS_DIR:
Accesso da shell: yarn logs -applicationId <app ID>
Ma dopo che l’applicazione è terminata (no real-time)!!!
??#...##@@]]]!!!!!
°°°°ççççç?????????
Dove sono i log di Spark?
• Near-Real-Time
• dettaglio della singola istanza di application
• ricerche sui log in base a diversi criteri
• severity configurabile
Requisiti
PROs:
• Ready-right-out-of- the-box
• Open source
CONs
• Non-Hadoop-based
• Indice ElasticSearch non su HDFS
Elastic stack (ELK)
• Open source
• Riutilizzabile in qualsiasi distribuzione Hadoop
• Near real time
• Piattaforma Big Data per i log prodotti dalle applicazioni Big Data
• Configurabile dinamicamente
• Customizzabile
• Distribuita
• Scalabile
• Interrogazioni su web application
Parametri di scelta
• Log4j : sistema di logging
• Zookeeper : gestione distribuita di file di configurazione e notifica di
eventi significativi per il sistema
• Kafka : sistema di messagging per il trasferimento dei messaggi
• Flume : processing layer per deserializzazione/mapping su solr dei
messaggi
• Morphline: trasformazione dei dati per indice Solr
• SolrCloud : storage dei messaggi di log
• Kibana on Solr (Banana): visualizzazione dei messaggi presenti su Solr
Stack tecnologico Apache
• distributed messaging system
• pub-sub model
• highly scalable and redundant messaging
• highly available and resilient
• automatic recovery
• Producer: programma che invia messaggi a Kafka
• Topic: raggruppamento di messaggi simili
• Key/value pair messages: la forma dei messaggi
• Consumer: programma che estrae messaggi da Kafka
• Consumer Group: gruppo di consumer, per agevolare scaling e HA
• Offset: identificatore logico di un messaggio all’interno di una partizione
• Broker: demone responsabile dell’invio, ricezione e salvataggio dei dati
• Zookeeper: sistema per coordinazione distribuita e service discovery
• Partition: porzione di topic
• Replica: salvataggio di una partizione di dati su più nodi per durability
Apache Kafka
• File system gerarchico e distribuito
• HA e fault tolerant
• Fast (in-memory reads)
• Gestisce partial failures
• Reliable configuration system
• Gestisce load balancing
Distributed coordination service
Apache Zookeeper
“Apache Flume is a distributed, reliable, and available service for
efficiently collecting, aggregating, and moving large amounts of
streaming data into the Hadoop Distributed File System (HDFS). It
has a simple and flexible architecture based on streaming data
flows; and is robust and fault tolerant with tunable reliability
mechanisms for failover and recovery.”
Apache Flume
Spark processes
+webapps
+Java applications
Log4J
Appender
Log4j
Kafka
source
Kafka
channel
Morphline
sink
Solr
Banana
Flume
Zookeeper
(Severity level)
Processing Layer
Storage Layer
Visualization
Layer
Log Agent
Architettura
Flume  flessibilità nella scelta dello storage e /o
visualizzazione dei messaggi.
Storage Layer
HDFS
Spark processes
+webapps
+Java applications
Log4J
Appender
Log4j
Kafka
source
Kafka
channel
Morphline
sink
Flume
Zookeeper
(Severity level)
Processing Layer
Log Agent
Flessibilità della soluzione
Automaticamente vengono inseriti:
• utente
• hostname
• thread-name
Manualmente:
• System id
• Module id
• Application Name (opzionale)
• Source Id (opzionale)
• Logging Level (opzionale)
Appender Log4j
• Livello di logging update (severity) gestita da Zookeeper  non è
necessario riavviare le applicazioni
• È possibile cambiare il livello di logging di ogni appender registrato
durante l'esecuzione dell'applicazione in maniera programmatica,
scartando i messaggi che hanno un livello di logging inferiore a quello
impostato
• Scrive il log in formato JSON su Kafka  Kafka producer
• Grazie a “contesti di logging”, è possibile aggiungere informazioni in
maniera dinamica ai messaggi di logging (utilizzo di moduli condivisi
all'interno della stessa applicazione ospite, da “applicazioni” diverse )
Appender Log4j- funzionalità
• 3 Kafka brokers su
• 3 nodi
• Fattore replica 2
• 1 Kafka topic con
• 3 partitions
• 3 solr shards
Configurazione dello stack
Un po’ di codice…
a1.sources=kafka
a1.channels=channelKafka
a1.sinks=solrSink
a1.sources.kafka.kafka.bootstrap.servers=mn01:9092,mn02:9092,mn03:9092
a1.sources.kafka.type=org.apache.flume.source.kafka.KafkaSource
a1.sources.kafka.zookeeperConnect=mn01,mn02,mn03:2181/kafka
a1.sources.kafka.topic=distroLogs
a1.sources.kafka.batchSize=20000
a1.sources.kafka.batchDurationMillis=3000
a1.sources.kafka.channels=channelKafka
a1.channels.channelKafka.type=org.apache.flume.channel.kafka.KafkaChannel
a1.channels.channelKafka.zookeeperConnect=mn01,mn02,mn03:2181/kafka
a1.channels.channelKafka.brokerList=mn01:9092,mn02:9092,mn03:9092
a1.channels.channelKafka.parseAsFlumeEvent=true
a1.sinks.solrSink.type=org.apache.flume.sink.solr.morphline.MorphlineSolrSink
a1.sinks.solrSink.channel=channelKafka
a1.sinks.solrSink.batchSize=20000
a1.sinks.solrSink.morphlineFile=morphlines.conf
Agente Flume
………
{ extractJsonPaths {
flatten: true
paths: {
threadId: "/threadId"
level: "/level"
logTime: "/logTime"
systemId: "/systemId"
appId: "/appId"
appName: "/appName"
module: "/module"
action: "/action"
status: "status"
user: "/user"
message: "/message"
hostname: "/hostname"
body: "/body"}
} }
……………….
…………..
solrLocator: {
collection: "distroLogs"
# ZooKeeper ensemble
zkHost: "mn01,mn02,mn03:2181/solr" }
……..
Morphline
log4j.rootLogger=INFO,stdout
log4j.appender.mainAppLogger=it.engineering.logging
.appender.DistributedLoggerAppender
log4j.appender.mainAppLogger.AppName=SPARK_LOG
log4j.appender.mainAppLogger.SystemId=<SYSTEM>
log4j.appender.mainAppLogger.module=SPARK_REC
log4j.appender.mainAppLogger.SourceId=SPARK-SCALA
Spark-Log4j.properties
Test me!!!
producer
producer
producer
partition1
partition2
partition3
consumer
Zookeeper
consumer
consumer
producer
#flume
agents#processi
shard1
shard2
shard3
Solr
partition2-R
partition3-R
partition1-R
Topic
Broker1Broker2Broker3
Kafka brokers e topic
Solr Search (Hue embedded)
PROs:
- molti widget grafici disponibili out-of-the-box
- possibilità di creazione di molteplici dashboard
- funzionalità di SSO e condivisione delle dashboard sfruttando le
funzionalità di HUE
CONs:
- Dashboard non funzionano correttamente su collection di Solr
distribuite su più nodi (HUE BUG)
Visualization layer: Hue
Apache Banana (https://github.com/lucidworks/banana)
• Forked from Kibana
• Build come .war file
• Run su web-container dei Solr server o su una macchina diversa (abilitare i CORS
sui Solr Server)
PROs:
- molti widget grafici disponibili out-of the box
- possibilità di creazione di molteplici dashboard
CONS:
- Non offre nessun tipo di autenticazione
Visualization layer: Banana
Full-text search
Time series
Detail tableFacets
Dashboards
Banana dashboards
Thank you!
https://creativecommons.org/licenses/by-nc-sa/3.0/
Twitter: @twittmonique
Email: monixfranc@gmail.com
Special thanks to Matilde and her puppies!

More Related Content

PDF
Clustering Reddit: Learning from The Front Page of the Internet - Sara Di Bar...
PPTX
Portabilità dei dati e benessere del consumatore di servizi cloud - Davide Mula
PPTX
Cognitive computing in the digital health era - Federico Neri
PDF
No Data, No Party - Roberto Magnifico
PDF
Tavola Rotonda Industria 4.0 - Stefano Panzieri
PDF
Knowledge graph: il percorso di Cerved per connettere i Big Data - Diego Sanvito
PPTX
Innovazione per la PA - Andrea D'Acunto
PPTX
LCA as an innovation tool - Barilla - Luca Ruini
Clustering Reddit: Learning from The Front Page of the Internet - Sara Di Bar...
Portabilità dei dati e benessere del consumatore di servizi cloud - Davide Mula
Cognitive computing in the digital health era - Federico Neri
No Data, No Party - Roberto Magnifico
Tavola Rotonda Industria 4.0 - Stefano Panzieri
Knowledge graph: il percorso di Cerved per connettere i Big Data - Diego Sanvito
Innovazione per la PA - Andrea D'Acunto
LCA as an innovation tool - Barilla - Luca Ruini

Viewers also liked (17)

PDF
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
PDF
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
PDF
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
PDF
L’etica nella società dell’intelligenza artificiale - Edmondo Grassi
PPTX
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
PDF
Healthware for medicine - Roberto Ascione
PDF
Towards intelligent data insights in central banks: challenges and opportunit...
PPTX
Enhanced site search with cognitive APIs - Glynn Bird
PDF
Il paradigma dei Big Data e Predictive Analysis, un valido supporto al contra...
PPTX
Data driven innovation in chirurgia: il caso EVARplanning - Paolo Spada
PPTX
Data ethics and machine learning: discrimination, algorithmic bias, and how t...
PDF
The mine of the public open data, a fundamental asset - Flavia Marzano
PDF
Il deep learning ed una nuova generazione di AI - Simone Scardapane
PDF
Genomic Big Data Management, Integration and Mining - Emanuel Weitschek
PPTX
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
PPTX
Blockchain meets business: applications, problems and solutions - Stefano Cap...
PDF
Il valore delle Indicazioni Geografiche nell'economia italiana - Mauro Rosati
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
L’etica nella società dell’intelligenza artificiale - Edmondo Grassi
INDUSTRIA 4.0 - Il trasferimento tecnologico attraverso i Digital Innovation ...
Healthware for medicine - Roberto Ascione
Towards intelligent data insights in central banks: challenges and opportunit...
Enhanced site search with cognitive APIs - Glynn Bird
Il paradigma dei Big Data e Predictive Analysis, un valido supporto al contra...
Data driven innovation in chirurgia: il caso EVARplanning - Paolo Spada
Data ethics and machine learning: discrimination, algorithmic bias, and how t...
The mine of the public open data, a fundamental asset - Flavia Marzano
Il deep learning ed una nuova generazione di AI - Simone Scardapane
Genomic Big Data Management, Integration and Mining - Emanuel Weitschek
Polyglot Persistence e Big Data: tra innovazione e difficoltà su casi reali -...
Blockchain meets business: applications, problems and solutions - Stefano Cap...
Il valore delle Indicazioni Geografiche nell'economia italiana - Mauro Rosati
Ad

Similar to Sistema di logging applicativo per ambienti distribuiti Hadoop-based - Monica Franceschini (20)

PDF
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
PPTX
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
PDF
Mulesoft milano meetup #5 florence consulting
PDF
Logstash: Progetto open per l'analisi dei log in tempo reale di architetture ...
PDF
Codemotion fuse presentation
PPTX
Evoluzioni architetturali a partire da Hadoop
PDF
Hadoop in action!
PDF
Studio di una Architettura per un Sistema Distributivo ad Alta Affidabilità
PDF
Kubernetes Core Concepts
PDF
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
PDF
Big data - stack tecnologico
PDF
Summary of "NebulOS: A Big Data framework for astrophysics"
PPTX
Microservices webinar EMEA Aug. 2017
PPTX
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
PPTX
Iaa s con openstack per l'analisi di bigdata
PDF
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
PDF
Hadoop - Introduzione all’architettura ed approcci applicativi
PDF
Architetture a Microservizi (con Kubernetes)
PDF
Modernize Legacy Systems with Kubernetes
PDF
Anomaly detection in network traffic flows with big data analysis techniques
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Mulesoft milano meetup #5 florence consulting
Logstash: Progetto open per l'analisi dei log in tempo reale di architetture ...
Codemotion fuse presentation
Evoluzioni architetturali a partire da Hadoop
Hadoop in action!
Studio di una Architettura per un Sistema Distributivo ad Alta Affidabilità
Kubernetes Core Concepts
Big Data Analytics, Giovanni Delussu e Marco Enrico Piras
Big data - stack tecnologico
Summary of "NebulOS: A Big Data framework for astrophysics"
Microservices webinar EMEA Aug. 2017
Realizzazione di Microservizi con Docker, Kubernetes, Kafka e Mongodb
Iaa s con openstack per l'analisi di bigdata
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
Hadoop - Introduzione all’architettura ed approcci applicativi
Architetture a Microservizi (con Kubernetes)
Modernize Legacy Systems with Kubernetes
Anomaly detection in network traffic flows with big data analysis techniques
Ad

More from Data Driven Innovation (20)

PDF
Integrazione della mobilità elettrica nei sistemi urbani (Stefano Carrese, Un...
PDF
La statistica ufficiale e i trasporti marittimi nell'era dei big data (Vincen...
PDF
How can we realize the Mobility as a Service (Maas) (Andrea Paletti, London S...
PDF
Il DTC-Lazio e i dati del patrimonio culturale (Maria Prezioso, Università To...
PDF
CHNet-DHLab: Servizi Cloud a supporto dei beni culturali (Fabio Proietti, INF...
PDF
Progetto EOSC-Pillar (Fulvio Galeazzi, GARR)
PDF
Una infrastruttura per l’accesso al patrimonio culturale: il Progetto del Por...
PDF
Utilizzo dei Big data per l’analisi dei flussi veicolari e della mobilità (Ma...
PDF
I dati personali nell'analisi comportamentale della mobilità di dipendenti e ...
PDF
Estrarre valore dai dati: tecnologie per ottimizzare la mobilità del futuro (...
PPTX
Le piattaforme dati per la mobilità nelle città italiane (Marco Mena, EY)
PDF
WiseTown, un ecosistema di applicazioni e strumenti per migliorare la qualità...
PDF
CityOpenSource as a civic tech tool (Ilaria Vitellio, CityOpenSource)
PDF
Big Data Confederation: toward the local urban data market place (Renzo Taffa...
PDF
Making citizens the eyes of policy makers: a sweet spot for hybrid AI? (Danie...
PDF
Dall'Agenda Digitale alla Smart City: il percorso di Roma Capitale verso il D...
PDF
Reusing open data: how to make a difference (Vittorio Scarano, Università di ...
PDF
Gestire i beni culturali con i big data (Sandro Stancampiano, Istat)
PDF
Data Governance: cos’è e perché è importante? (Elena Arista, Erwin)
PDF
Data driven economy: bastano i dati per avviare una start up? (Gabriele Anton...
Integrazione della mobilità elettrica nei sistemi urbani (Stefano Carrese, Un...
La statistica ufficiale e i trasporti marittimi nell'era dei big data (Vincen...
How can we realize the Mobility as a Service (Maas) (Andrea Paletti, London S...
Il DTC-Lazio e i dati del patrimonio culturale (Maria Prezioso, Università To...
CHNet-DHLab: Servizi Cloud a supporto dei beni culturali (Fabio Proietti, INF...
Progetto EOSC-Pillar (Fulvio Galeazzi, GARR)
Una infrastruttura per l’accesso al patrimonio culturale: il Progetto del Por...
Utilizzo dei Big data per l’analisi dei flussi veicolari e della mobilità (Ma...
I dati personali nell'analisi comportamentale della mobilità di dipendenti e ...
Estrarre valore dai dati: tecnologie per ottimizzare la mobilità del futuro (...
Le piattaforme dati per la mobilità nelle città italiane (Marco Mena, EY)
WiseTown, un ecosistema di applicazioni e strumenti per migliorare la qualità...
CityOpenSource as a civic tech tool (Ilaria Vitellio, CityOpenSource)
Big Data Confederation: toward the local urban data market place (Renzo Taffa...
Making citizens the eyes of policy makers: a sweet spot for hybrid AI? (Danie...
Dall'Agenda Digitale alla Smart City: il percorso di Roma Capitale verso il D...
Reusing open data: how to make a difference (Vittorio Scarano, Università di ...
Gestire i beni culturali con i big data (Sandro Stancampiano, Istat)
Data Governance: cos’è e perché è importante? (Elena Arista, Erwin)
Data driven economy: bastano i dati per avviare una start up? (Gabriele Anton...

Sistema di logging applicativo per ambienti distribuiti Hadoop-based - Monica Franceschini

Editor's Notes

  • #14: difficoltà a deserializzare i messaggi provenienti da Kafka dentro l'agente quando questi erano modellati come file Avro
  • #15: morphline apposita che ha come sorgente Kafka e come output l'Hdfs.La generazione del file su HDFS avviene seguendo le logiche definite nella configurazione dell'HDFS sink nell'agent(numero di eventi o dimensione del file)
  • #16: avevamo bisogno di una struttura che permettesse di arricchire il messaggio di Log con più informazioni e il Kafka appender non ci forniva la flessibilità necessaria