--- title: Big Data. 004. Introducció a Hadoop. tags: DAM, Big Data --- [Link en MarkDown](https://hackmd.io/@JdaXaviQ/BJgu2IYQj) <div style="text-align: center;"> ![](https://i.imgur.com/LIqynyj.jpg) </div> # DAM Big Data 004: Introducció a Hadoop. **Definició:** Hadoop es un entorn de treball (framework) utilitzat per procesar enormes quantitats de dades. Quan parlem d'enormes, ens referim a quantitas tan grans que sigui inviable de procesar amb un sol equip individual, per tant Hadoop està pensat per treballar en clusters d'ordinadors. Hadoop no és un unic programa, és un conjunt de programes de software lliure, on cadascú realitza una tasca diferent i que eventualment es poden sustituir per altres programes fora de l'ecosistema Hadoop. ## Core components (Components centrals): * Hadoop Common: és una de les parts essencials de l'entorn de treball. Es refereix a la col·lecció d'utilitats i biblioteques que donen suport a la resta de mòduls de Hadoop. * HDFS: Hadoop Distributed File System. És el component d'emmagatzematge distribuit de l'ecosistema Hadoop. * Divideix els fitxers en blocs, crea rèpliques dels blocs i els emmagatzema en diferents màquines de forma distribuida. * Proveeix accés a dades en streaming. Això vol dir que intenta mantenir un bitrate constant d'informació en lloc de transferir les dades en onades. * Utilitza una CLI [Command line interface] per interaccionar amb Hadoop. * MapReduce: També conegut com Hadoop's processing unit (unitat de procesament Hadoop). Procesa grans quantitats de dades dividint-les en porcions més petites i procesant-les en paral·lel. És el primer mètode per recuperar dades emmagatzemades en HDFS, tot i que existeixen altres. * YARN: Yet Another Resource Negotiator. ## HDFS. ![](https://i.imgur.com/Icsa697.png) ### Principals característiques: * Eficient en el cost. * Grans quantitats de dades. * Redundancia. * Tolerant a errors. * Escalable. * Portable entre diferents plataformes. ### Conceptes d'HDFS. #### Node: Un node és una màquina dins del cluster HDFS. Existeixen dos tipus de nodes: Primari i Secundari. El node primari, també anomenat Name Node, s'encarrega de la gestió, regula l'accés als fitxers per part dels clients i manten, gestiona i assigna tarees als nodes secundaris. Els nodes secundaris, també anomenats Data Nodes, són els _treballadors_ del sistema i executen les instruccions del node primari. ## Hive ![](https://i.imgur.com/CHTKNGt.png) El significat del seu nom és: **rusc** Hive és un programari que permet gestionar dades tabulades que estiguin emmagatzemades en un sistema HDFS. Les consultes es fan mitjançant una variant de l'SQL anomenada 'Hive QL' o 'HQL' que no suporta tota la especificació SQL-92. En realitat quan executa la consulta, internament genera una tasca MapReduce que és la que finalment recopila les dades demanades. D'aquesta forma, usuaris que no tenen la capacitat de codificar algorismes MapReduce, però amb coneixements d'SQL poden tenir accés a les dades. En contrapartida aquesta traducció d'SQL a algorismes MapReduce en Java generen una alta latència. ## HBase ![](https://i.imgur.com/MWDgwAc.png) HBase és una base de dades no relacional orientada a columnes (tot i que no té un esquema de columnes fix) que corre a sobre d'HDFS. És tolerant a errors i és bona accedint de forma aleatòria a grans quantitats de dades i en aplicacions de temps real.