Colloquio Big Data

Cosa si intende con il termine "Big Data"?

Il termine "Big Data" e' associato a dati di grandi dimensione e complessità variabile (strutturati e non) che di solito non possono essere gestiti con database relazionali.

Quali sono le 5 V del "Big Data"?

  • Volume: inteso che quantita' di dati (Petabytes)
  • Velocity: velocita' con cui i dati possono crescere (es.: ricerche di google)
  • Varieta': tipi di dati trattati, text, audios, videos, etc.
  • veridicita': La veridicita' si riferisce all'incertezza dei dati disponibili. La veridicità nasce dall'elevato volume di dati che comporta incompletezza e incoerenza
  • Valore: Il valore si riferisce alla trasformazione dei dati in valore. Trasformando i big data in valori accessibili, le aziende possono generare profitti.

Quali sono gli step di una soluzione Big Data?

  • Data Ingestion: Estrazione dei dati da varie sorgenti (Salesforce,Sap,Mysql, documenti).I dati possono essere acquisiti tramite job batch o stremaning real time.
  • Data Storage: Archiviazione su HDFS o database NoSql (es.: HBase) [hdfs per accesso sequenziale, hbse per lettura/scrittura random]
  • Data Processing: Processazione del dato secondo la logica di business, tramite framework com Spark, MapReduce etc.

Cosa e' Hadoop?

Hadoop e' un framework open source che permetti di processare e archiviare i Big Data, sfruttando sistemi in cluster ed il parallellismo orizzontale.

Quali sono i componenti core di Hadoop

I componenti core di hadoop sono HDFS e Yarn

HDFS (hadoop file system) e' composto da:

  • NameNode: gestore dei metadati
  • DataNode/Slave node: archivio dei dati

YARN si divide in:

  • ResourceManager componente che riceve le richieste ed alloca i NodeManager
  • NodeManager esegue i task

Quali sono le principali differenze tra un NAS e HDFS?

HDFS si installa su un cluster mentre un NAS su una singola macchina. I dati in HDFS sono su driver locali alla macchina mentre sul NAS è presente un Hardware dedicato (piu' dischi)

HDFS permette l'accesso simultaneo allo stesso file?

No, il primo processo accede al file, tutti gli altri vengono rifiutati.

Cosa si intende con Rack Awareness in Hadoop?

Il Rack Awareness, letteralmente "Consapevolezza del rack" e' l'algoritmo con cui il NameNode alloca i dati sul DataNode cercando di minimizzare il traffico di rete, in caso di replica 3 due copie di dati si trovano sullo stesso rack ed una su un altro.

Elenca le principali caratteristiche di Hadoop

Le piu' importanti caratteristiche sono:

  • Open Source: Hadoop e' un framework open source quindi gratis.
  • Distributed Processing: Hadoop supporta processi distribuiti.
  • Fault Tolerance: Hadoop e' fault-tolerant, in caso di errore riprova il processo, di default replica 3 volte l'errore per ogni nodo in esecuione prima di arrestarsi.
  • Reliability: (Affidabilita') Hadoop archivia i dati in alta affidabilità, replicandoli su 3 nodi per default.
  • Scalability: Hadoop e' scalabile, basta aggiungere nodi.
  • High Availability: dopo la rottura dell'hardware e' possibile recuperare i dati con path alternativi.

Elencare le modalità di esecuzione in Hadoop.

Le modalita' esecutive sono 3:

  • Standalone (Local) Mode: modalita' non-distribuita su singolo nodo.
  • Yarn Client: Il master sulla macchina che lancia il processo e gli executor dove vuole yarn
  • Yarn Yarn master ed executor a discrezione di yarn.

Quali sono i principali file di configurazione di Hadoop?

  • core-site.xml:Hadoop core configuration settings ( MapReduce, HDFS,I/O).
  • mapred-site.xml configurazione per il MapReduce
  • hdfs-site.xml configurazione per l'hdfs
  • yarn-site.xml configurazione di yarn

    Paths to config files:

  • /etc/hive/conf/hive-site.xml
  • /etc/sentry/sentry-site.xml
  • /etc/hadoop/conf/core-site.xml and hdfs-site.xml

Come e' gestita la sicurezza in Hadoop?

La sicurezza e' gestita con kerberos, gli step di accreditamento presso un servizio sono:

  • Authentication: Autenticazione dell'utenza genera un time-stamped TGT (Ticket-Granting Ticket).
  • Authorization Autorizzazione dell'utenza (Ticket Granting Server).
  • Service Request: richiesta del servizio.

Cosa e' una commodity hardware?

Si tratta di un computer a basso costo

Cosa sono i file fsimage e i file editlogs in HDFS?

Le meta-informazioni nel NameNode sono contenute nei file fsimage. Ad ogni modifica su hdfs, creazione eliminazione di file, le nuove informazioni vendono archiviate nei file editlog, al riavvio del NameNode i file fsimage e editlogs vengono mergiati

DBMS vs RDBMS

RDBMS sta per relational database management system

Parameter DBMS RDBMS
Storage archivia i dati come file archivia i dati come tabelle
Database structure I dati sono strutturati in forma gerrachica (un ggetto che contiene N oggetti e cosi' via) od in forma navigabile. struttura tabellare con in intestazione il nome delle colonne e il resto i valorei
Number of Users utenza singola utenze multiple
ACID i dati possono essere inconsistenti dati consistenti e strutturati ACID (Atomicity, Consistency, Isolation, Durability)
Data Redundancy i dati possono essere ridondanti e duplicati con Keys e indexes nessuna replica ne ridondanza
Data Relationship Nessuna relazione tra i dati (se non logica) le foreign keys assicurano che le relazioni siano rispettate

Cosa e' Apache HBase

HBase e' un column oriented database non relazionale basato sul hdfs di hadoop, distribuito e scalabile sullo stile del "Big Table" di Google con rapido accesso in lettura e scrittura random. (la normale tabella senza la column family e' row oriented)

Rowid Column Family Column Family
identificativo struttura a colonne struttura a colonne

le Column Family hanno una struttura del tipo:

col1 col 2 col3
dati dati dati

Quali sono i componenti dell'architettura di HBase?

I principali componenti sono : HMaster Server, HBase Region Server, Regions e Zookeeper. Definiamo Region (default size di 256MB) tutte le righe da X ad Y contenute per una certa column family, un Region Server puo' gestire fino a 1000 regioni per le operazioni di crud, HBase HMaster gestisce le operazioni di DDL (Data Definition Language delete/create table) e assegna le Regions ai Region servers, nel caso in cui un HMaster non riesca a gesitire tutti i Region Server ci si appoggia su Zookeeper, cioe' i Region Server datto un heartbeat a zookeeper e hmaster controlla e si comporta di conseguenza, inoltre zookeeper contine i .META file con le informazioni delle region.

Quali sono i componenti di un HBase Region Server?

  • WAL: Entry point in scrittura che gestisce anche i fail
  • Block Cache: cache in lettura con le ultime richieste
  • MemStore: cache in scrittura
  • HFile: scrittura fisica

Cosa e' Kafka?

Apache Kafka e' un software open source, distribuito, per la gestione di messaggi (message divider project).

  • High scalability: Apache Kafka shows high scalability, that too without any downtime
  • Continuous streaming: Apache Kafka keeps the continuous processing of streaming data to the topics
  • High throughput: Kafka is able to handle a high volume of data even at a high velocity and it also supports high message throughput, meaning it can handle thousands of messages every second
  • Low latency: Apache Kafka decreases the latency, making it possible for you to deliver the data in mere milliseconds in real time
  • Fault tolerant: Kafka is highly available and resilient to node failures and supports automatic recovery
  • Durable: Apache Kafka lets us replicate the messages and the messages persist as fast as possible on the disk which makes Kafka durable as well.

Quali sono i componenti principali di Kafka?

  • Topic : il contenitore dei messaggi, divisibile in partition contradistinti da diversi offset per avere piu' consumer
  • Producer : inserisce i messaggi in una topic (in modo sincrono ed asincrono)
  • Consumer : legge i messaggi da una topic
  • Brokers : sono i server che contengono le singole istanze di kafka

Che ruolo copre Zookeeper in Kafka?

Senza Zookeeper kafka non parte, essendo un sistema distribuito serve a coordinare i nodi del cluster, vengono archiviate le configurazioni comuni e volendo anche gli offset

Cosa e' Zookeeper?

Zookeeper e' un progetto open source per fornire un servizio di configurazione distribuito, un servizio di sincronizzazione per grandi sistemi distribuiti.

Cosa e' Hive?

Apache Hive è un sistema di data warehouse per Apache Hadoop. Hive consente di eseguire attività di riepilogo, query e analisi dei dati. Le query di Hive sono scritte in HiveQL, linguaggio di query simile a SQL. Hive consente di proiettare la struttura su dati principalmente non strutturati.