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.
Hadoop e' un framework open source che permetti di processare e archiviare i Big Data, sfruttando sistemi in cluster ed il parallellismo orizzontale.
I componenti core di hadoop sono HDFS e Yarn
HDFS (hadoop file system) e' composto da:
YARN si divide in:
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)
No, il primo processo accede al file, tutti gli altri vengono rifiutati.
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.
Le piu' importanti caratteristiche sono:
Le modalita' esecutive sono 3:
Paths to config files:
La sicurezza e' gestita con kerberos, gli step di accreditamento presso un servizio sono:
Si tratta di un computer a basso costo
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
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 |
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 |
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.
Apache Kafka e' un software open source, distribuito, per la gestione di messaggi (message divider project).
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
Zookeeper e' un progetto open source per fornire un servizio di configurazione distribuito, un servizio di sincronizzazione per grandi sistemi distribuiti.
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.
https://www.whizlabs.com/blog/big-data-interview-questions/
https://www.whizlabs.com/blog/hdfs-interview-questions/
https://www.whizlabs.com/blog/hbase-interview-questions/
https://www.edureka.co/blog/hbase-architecture/
https://dzone.com/articles/top-25-big-data-interview-questions-and-answers-yo
https://intellipaat.com/interview-question/kafka-interview-questions/
https://www.edureka.co/blog/interview-questions/top-apache-kafka-interview-questions-for-beginners/
https://www.cloudkarafka.com/blog/2016-11-30-part1-kafka-for-beginners-what-is-apache-kafka.html
https://mindmajix.com/apache-kafka-interview-questions
https://data-flair.training/blogs/kafka-interview-questions/
https://www.dezyre.com/article/sqoop-interview-questions-and-answers-for-2018/274
https://www.journaldev.com/8958/scala-interview-questions-answers
https://github.com/Jarlakxen/Scala-Interview-Questions#general-questions
https://www.wisdomjobs.com/e-university/cloudera-interview-questions.html