En aquest tema, explorarem els components bàsics de Hadoop, que són essencials per entendre com funciona aquest sistema de processament de dades distribuït. Hadoop està format per diversos components clau que treballen junts per emmagatzemar i processar grans volums de dades de manera eficient.

Objectius d'aprenentatge

Al final d'aquest tema, hauràs de ser capaç de:

  • Identificar els components bàsics de Hadoop.
  • Comprendre les funcions de cada component.
  • Explicar com aquests components treballen junts per processar dades.

Components principals de Hadoop

Hadoop es compon principalment de quatre components bàsics:

  1. HDFS (Hadoop Distributed File System)
  2. MapReduce
  3. YARN (Yet Another Resource Negotiator)
  4. Common Utilities

  1. HDFS (Hadoop Distributed File System)

HDFS és el sistema de fitxers distribuït de Hadoop, dissenyat per emmagatzemar grans volums de dades de manera fiable i permetre l'accés a aquestes dades de manera eficient.

Característiques clau d'HDFS:

  • Emmagatzematge distribuït: Les dades es divideixen en blocs i es distribueixen a través de múltiples nodes.
  • Replicació: Cada bloc de dades es replica en diversos nodes per garantir la tolerància a fallades.
  • Alta disponibilitat: HDFS està dissenyat per ser resistent a fallades de maquinari.

Exemple de codi:

# Comanda per llistar els fitxers en un directori HDFS
hdfs dfs -ls /user/hadoop/

  1. MapReduce

MapReduce és el model de programació i el motor de processament de dades de Hadoop. Permet processar grans volums de dades de manera paral·lela a través de múltiples nodes.

Fases de MapReduce:

  • Map: Processa les dades d'entrada i genera parells clau-valor intermedis.
  • Shuffle and Sort: Agrupa els parells clau-valor intermedis per clau.
  • Reduce: Processa els parells clau-valor agrupats i genera el resultat final.

Exemple de codi:

public class WordCount {
    public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();

        public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
            StringTokenizer itr = new StringTokenizer(value.toString());
            while (itr.hasMoreTokens()) {
                word.set(itr.nextToken());
                context.write(word, one);
            }
        }
    }

    public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
        private IntWritable result = new IntWritable();

        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable val : values) {
                sum += val.get();
            }
            result.set(sum);
            context.write(key, result);
        }
    }
}

  1. YARN (Yet Another Resource Negotiator)

YARN és el gestor de recursos de Hadoop. Permet gestionar els recursos del clúster i programar les aplicacions de manera eficient.

Funcions de YARN:

  • Gestió de recursos: Assigna recursos (CPU, memòria) a les aplicacions.
  • Programació de tasques: Programa les tasques de les aplicacions en els nodes disponibles.
  • Monitorització: Supervisa l'execució de les tasques i gestiona les fallades.

  1. Common Utilities

Les utilitats comunes de Hadoop inclouen biblioteques i eines que donen suport als altres components de Hadoop. Aquestes utilitats proporcionen funcionalitats com la configuració, la gestió de fitxers i la comunicació entre nodes.

Resum

En aquest tema, hem explorat els components bàsics de Hadoop: HDFS, MapReduce, YARN i les utilitats comunes. Aquests components treballen junts per proporcionar una plataforma robusta i escalable per emmagatzemar i processar grans volums de dades. En els següents temes, aprofundirem en cadascun d'aquests components per comprendre millor el seu funcionament i com utilitzar-los de manera efectiva.

© Copyright 2024. Tots els drets reservats