Pràctica PR5075/02: Clúster Hadoop amb Docker Compose
Objectius
- Desplegar un clúster Hadoop complet (NameNode, DataNode, YARN, Hive) amb Docker Compose
- Crear i gestionar directoris i fitxers al sistema HDFS
- Executar un job MapReduce (WordCount) sobre dades en HDFS
- Crear taules Hive, carregar dades i executar consultes SQL analítiques
- Monitorar l'estat del clúster via les interfícies web de NameNode i ResourceManager
Prerequisits
| Requisit | Detall |
|---|---|
| Temps estimat | 3-4 hores |
| RAM mínima | 8 GB (recomanat 12 GB) |
| Espai en disc | 5 GB lliures |
| Docker | Docker Engine 24.x i Docker Compose V2 |
| Coneixements previs | Conceptes bàsics HDFS, MapReduce i SQL |
Recursos del sistema
Aquesta pràctica engega 6 contenidors Docker simultàniament. Si el teu ordinador té menys de 8 GB de RAM disponibles, pots reducir la pràctica a NameNode + DataNode + ResourceManager (sense Hive), eliminant els serveis hive-server, hive-metastore i hive-metastore-postgresql.
Introducció
Apache Hadoop és la base de l'ecosistema Big Data tradicional. Tot i que plataformes cloud com Databricks o BigQuery han simplificat el desplegament en producció, entendre el funcionament intern de Hadoop —com HDFS reparteix i replica els blocs, com YARN gestiona els recursos, com MapReduce executa transformacions distribuïdes— és fonamental per a qualsevol professional del Big Data.
En aquesta pràctica, desplegaràs un clúster Hadoop funcional en el teu ordinador local usant les imatges Docker del projecte bde2020 (Big Data Europe). El clúster inclou:
- HDFS: Sistema de fitxers distribuït (NameNode + DataNode)
- YARN: Gestió de recursos i execució de jobs (ResourceManager + NodeManager)
- Hive: Data Warehouse SQL sobre HDFS (HiveServer2 + Metastore + PostgreSQL)
Per qué Hadoop el 2025? Malgrat l'auge del cloud, el 60% dels Data Warehouses corporatius continuen basant-se en HDFS. Zara, Telefónica, BBVA i la majoria de grans empreses espanyoles mantenen clústers Hadoop on-premises o en cloud (AWS EMR, Google Dataproc). Entendre Hadoop és entendre els fonaments sobre els quals s'ha construït tot l'ecosistema Big Data modern.
Part 1: Configuració del docker-compose.yml
Crea un directori de treball i el fitxer de configuració:
Crea el fitxer docker-compose.yml amb el contingut següent. Substitueix joan-garcia pel teu nom i cognom (en minúscules, amb guió):
# docker-compose.yml
# Pràctica PR5075/02 - Clúster Hadoop
# Alumne: joan-garcia (SUBSTITUIR pel teu nom-cognom)
services:
namenode:
image: bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
container_name: namenode-joan-garcia
hostname: namenode
environment:
- CLUSTER_NAME=cluster-joan-garcia
- CORE_CONF_fs_defaultFS=hdfs://namenode:9000
- HDFS_CONF_dfs_replication=1
ports:
- "9870:9870"
- "9000:9000"
volumes:
- hadoop_namenode:/hadoop/dfs/name
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9870"]
interval: 30s
timeout: 10s
retries: 5
networks:
- hadoop-joan-garcia
datanode:
image: bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
container_name: datanode-joan-garcia
hostname: datanode
environment:
SERVICE_PRECONDITION: "namenode:9870"
CORE_CONF_fs_defaultFS: "hdfs://namenode:9000"
HDFS_CONF_dfs_replication: "1"
ports:
- "9864:9864"
volumes:
- hadoop_datanode:/hadoop/dfs/data
depends_on:
- namenode
networks:
- hadoop-joan-garcia
resourcemanager:
image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
container_name: resourcemanager-joan-garcia
hostname: resourcemanager
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864"
ports:
- "8088:8088"
depends_on:
- namenode
- datanode
networks:
- hadoop-joan-garcia
nodemanager:
image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8
container_name: nodemanager-joan-garcia
hostname: nodemanager
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
depends_on:
- resourcemanager
networks:
- hadoop-joan-garcia
hive-server:
image: bde2020/hive:2.3.2-postgresql-metastore
container_name: hive-joan-garcia
hostname: hive-server
environment:
HIVE_CORE_CONF_javax_jdo_option_ConnectionURL: "jdbc:postgresql://hive-metastore-postgresql/metastore"
SERVICE_PRECONDITION: "hive-metastore:9083"
ports:
- "10000:10000"
- "10002:10002"
depends_on:
- hive-metastore
networks:
- hadoop-joan-garcia
hive-metastore:
image: bde2020/hive:2.3.2-postgresql-metastore
container_name: hive-metastore-joan-garcia
hostname: hive-metastore
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 hive-metastore-postgresql:5432"
command: /opt/hive/bin/hive --service metastore
depends_on:
- hive-metastore-postgresql
- namenode
networks:
- hadoop-joan-garcia
hive-metastore-postgresql:
image: bde2020/hive-metastore-postgresql:2.3.0
container_name: hive-postgres-joan-garcia
hostname: hive-metastore-postgresql
networks:
- hadoop-joan-garcia
networks:
hadoop-joan-garcia:
name: hadoop-joan-garcia
volumes:
hadoop_namenode:
name: hadoop_namenode_joan_garcia
hadoop_datanode:
name: hadoop_datanode_joan_garcia
Factor de replicació = 1
Hem configurat HDFS_CONF_dfs_replication=1 perquè en local tenim un sol DataNode. En producció, el valor estàndard és 3 (tres còpies de cada bloc).
Part 2: Arrancada i verificació del clúster
2.1 Iniciar els serveis
# Des del directori hadoop-joan-garcia/
docker compose up -d
# Monitorar l'arrancada (seguir els logs)
docker compose logs -f
# Sortir dels logs: Ctrl+C
Temps d'arrancada
El clúster triga entre 2 i 4 minuts en estar completament operatiu. El servei Hive és l'últim en arrancar (espera que el NameNode i el DataNode estiguin disponibles). Sigues pacient.
2.2 Verificar l'estat dels contenidors
# Llistar tots els contenidors i el seu estat
docker compose ps
# L'estat correcte hauria de ser "Up" per a tots
# Exemple de sortida esperada:
# namenode-joan-garcia Up (healthy)
# datanode-joan-garcia Up
# resourcemanager-joan-garcia Up
# nodemanager-joan-garcia Up
# hive-joan-garcia Up
# hive-metastore-joan-garcia Up
# hive-postgres-joan-garcia Up
2.3 Accedir a les interfícies web
Obre al navegador:
| Servei | URL | Descripció |
|---|---|---|
| NameNode UI | http://localhost:9870 | Estat HDFS, fitxers, DataNodes |
| ResourceManager UI | http://localhost:8088 | Jobs YARN, recursos |
| HiveServer2 Web UI | http://localhost:10002 | Estat de HiveServer2 |
NameNode UI
A la pàgina principal del NameNode (http://localhost:9870), verifica que: - "Live Nodes" = 1 (el nostre DataNode) - "Dead Nodes" = 0 - "Capacity Used" mostra l'espai disponible
Part 3: Operacions HDFS
3.1 Accedir al contenidor NameNode
Un cop dins del contenidor, tens accés al client hdfs i a totes les utilitats Hadoop.
3.2 Crear l'estructura de directoris personalitzada
# Dins del contenidor namenode-joan-garcia
# Crear l'estructura de directoris per al teu espai de treball
hdfs dfs -mkdir -p /user/joan_garcia
hdfs dfs -mkdir -p /user/joan_garcia/dades
hdfs dfs -mkdir -p /user/joan_garcia/resultats
hdfs dfs -mkdir -p /user/joan_garcia/hive
# Verificar que s'han creat correctament
hdfs dfs -ls /user/joan_garcia/
# Establir permisos (lectura i escriptura per al propietari)
hdfs dfs -chmod 755 /user/joan_garcia
3.3 Crear el fitxer de text de prova
# Crear un fitxer de text sobre IA i Big Data en català
cat > /tmp/text_joan_garcia.txt << 'EOF'
La intel·ligència artificial transforma les empreses i la societat moderna.
L'aprenentatge automàtic permet als ordinadors aprendre de les dades sense programació explícita.
Apache Hadoop és el fonament de l'ecosistema Big Data distribuït.
El sistema HDFS emmagatzema dades en blocs repartits entre múltiples nodes.
Apache Spark processa grans volums de dades en memòria amb una velocitat excepcional.
Kafka gestiona fluxos de dades en temps real amb alta tolerància a fallades.
El processament distribuït permet analitzar terabytes de dades en minuts.
Les empreses generen dades contínuament: vendes, clics, sensors, transaccions financeres.
La qualitat de les dades és fonamental per a obtenir resultats fiables en anàlisi.
Els models de Machine Learning aprenen patrons amagats en grans conjunts de dades.
Apache Hive permet executar consultes SQL sobre dades emmagatzemades a HDFS.
El paradigma MapReduce divideix els problemes en tasques de mapeig i reducció.
La replicació de blocs a HDFS garanteix la tolerància a fallades dels nodes.
Les arquitectures Lambda combinen processament per lots i en temps real.
El cloud computing ha democratitzat l'accés a infraestructura Big Data escalable.
DataBricks simplifica el desplegament i la gestió de clústers Apache Spark.
Apache Airflow orquestra pipelines de dades complexos amb dependències entre tasques.
La seguretat en Big Data inclou autenticació Kerberos i autorització amb Apache Ranger.
Els formats columnar com Parquet i ORC milloren el rendiment de les consultes analítiques.
La governança de dades assegura la qualitat, traçabilitat i compliment normatiu.
EOF
# Verificar el contingut del fitxer local
wc -l /tmp/text_joan_garcia.txt
cat /tmp/text_joan_garcia.txt
3.4 Pujar fitxers a HDFS
# Pujar el fitxer de text al nostre directori HDFS
hdfs dfs -put /tmp/text_joan_garcia.txt /user/joan_garcia/dades/
# Verificar que s'ha pujat correctament
hdfs dfs -ls /user/joan_garcia/dades/
# Veure el contingut del fitxer directament des de HDFS
hdfs dfs -cat /user/joan_garcia/dades/text_joan_garcia.txt
# Veure informació detallada del fitxer (blocs, replicació)
hdfs fsck /user/joan_garcia/dades/text_joan_garcia.txt -files -blocks -locations
HDFS fsck
La comanda hdfs fsck (filesystem check) mostra la salut del fitxer: quants blocs el componen, on estan emmagatzemats i si hi ha còpies suficients. Amb el nostre factor de replicació 1, veuràs que cada bloc té exactament 1 rèplica.
3.5 Crear fitxer CSV per a Hive
# Crear un fitxer CSV de vendes fictícies
cat > /tmp/vendes_joan_garcia.csv << 'EOF'
2024-01-15,Ordinadors,UltraBook Pro,5,3499.99
2024-01-20,Perifèrics,Ratolí Ergonòmic,12,45.99
2024-02-03,Xarxa,Router WiFi 6,8,189.99
2024-02-14,Ordinadors,MacBook Air M3,3,1299.00
2024-02-28,Perifèrics,Teclat Mecànic,7,89.99
2024-03-05,Xarxa,Switch 24 ports,2,449.99
2024-03-12,Ordinadors,ThinkPad X1,4,1899.99
2024-03-20,Perifèrics,Monitor 4K 27,6,599.99
2024-04-01,Xarxa,Patch Panel 48,1,129.99
2024-04-10,Ordinadors,Gaming PC,2,2199.99
2024-04-22,Perifèrics,Webcam HD,15,79.99
2024-05-08,Xarxa,Access Point WiFi,4,299.99
2024-05-15,Ordinadors,Surface Pro 9,3,1499.99
2024-05-28,Perifèrics,Auriculars Noise Cancel,9,249.99
2024-06-10,Xarxa,Firewall Hardware,1,899.99
2024-06-20,Ordinadors,Mac Mini M4,6,749.99
2024-06-30,Perifèrics,Ratolí Gaming,11,65.99
2024-07-05,Xarxa,NAS 4 bahies,3,599.99
2024-07-15,Ordinadors,Chromebook Plus,8,499.99
2024-07-25,Perifèrics,Hub USB-C 10 ports,14,89.99
EOF
# Pujar el CSV a HDFS (al directori de Hive)
hdfs dfs -put /tmp/vendes_joan_garcia.csv /user/joan_garcia/hive/
# Verificar
hdfs dfs -ls /user/joan_garcia/hive/
hdfs dfs -cat /user/joan_garcia/hive/vendes_joan_garcia.csv
Part 4: Job MapReduce — WordCount
4.1 Executar el WordCount
El WordCount és el "Hello, World!" de MapReduce. Compta quantes vegades apareix cada paraula en un fitxer de text. L'input és el fitxer que hem pujat a HDFS.
# Dins del contenidor namenode-joan-garcia
# Executar el job MapReduce de WordCount
hadoop jar /opt/hadoop-3.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar \
wordcount \
/user/joan_garcia/dades/text_joan_garcia.txt \
/user/joan_garcia/resultats/wordcount_joan_garcia
# Durant l'execució, veuràs els progressos del Map i del Reduce:
# 24/01/15 10:23:45 INFO mapreduce.Job: map 0% reduce 0%
# 24/01/15 10:23:52 INFO mapreduce.Job: map 100% reduce 0%
# 24/01/15 10:23:58 INFO mapreduce.Job: map 100% reduce 100%
4.2 Veure els resultats
# Llistar els fitxers de sortida
hdfs dfs -ls /user/joan_garcia/resultats/wordcount_joan_garcia/
# La sortida estàndard inclou:
# _SUCCESS (fitxer buit que indica que el job ha acabat correctament)
# part-r-00000 (resultats del Reducer 0)
# Veure els resultats (paraula i nombre d'aparicions)
hdfs dfs -cat /user/joan_garcia/resultats/wordcount_joan_garcia/part-r-00000
# Ordenar per freqüència (descarregar i ordenar localment)
hdfs dfs -cat /user/joan_garcia/resultats/wordcount_joan_garcia/part-r-00000 | sort -k2 -rn | head -20
4.3 Verificar a la ResourceManager UI
Obre http://localhost:8088 i verifica que el job MapReduce apareix com a SUCCEEDED amb el nom "word count".
Pregunta de reflexió 1
Observes els resultats del WordCount. Algunes paraules com "de", "la", "i" apareixen moltes vegades. En un cas real on vols analitzar el contingut temàtic d'un document, quin pas de preprocés aplicaries per a eliminar aquestes paraules d'ompliment? Com s'anomena aquest concepte en NLP?
4.4 El paradigma Map-Reduce explicat
flowchart TD
Input[Fitxer de text a HDFS] --> Split
subgraph MapPhase["Fase Map (paral·lela)"]
Split[Input Split 1\nLinia 1-10] --> Map1[Mapper 1\nla=1 intel·ligencia=1 ...]
Split2[Input Split 2\nLinia 11-20] --> Map2[Mapper 2\nla=1 apache=1 ...]
end
Map1 --> Shuffle
Map2 --> Shuffle
subgraph ShufflePhase["Shuffle and Sort"]
Shuffle[Agrupa per clau\napache: 1,1,1\nla: 1,1,1,1,1]
end
Shuffle --> Reduce
subgraph ReducePhase["Fase Reduce"]
Reduce[Reducer\napache=3\nla=5\n...]
end
Reduce --> Output[Sortida a HDFS\npart-r-00000]
Part 5: Consultes Hive
5.1 Connectar a HiveServer2
# Des d'un terminal nou (fora del contenidor, o des d'un segon terminal)
docker exec -it hive-joan-garcia beeline -u jdbc:hive2://localhost:10000
# Un cop connectat, veuràs el prompt de Beeline:
# Beeline version 2.3.2 by Apache Hive
# 0: jdbc:hive2://localhost:10000>
5.2 Crear la base de dades i la taula
-- Crear base de dades personalitzada
CREATE DATABASE IF NOT EXISTS bd_joan_garcia
COMMENT 'Base de dades pràctica PR5075/02 - Joan Garcia';
USE bd_joan_garcia;
-- Verificar que estem a la base de dades correcta
SHOW DATABASES;
-- Crear taula de vendes que apunta als fitxers HDFS
CREATE TABLE IF NOT EXISTS vendes_joan_garcia (
data_venda STRING,
categoria STRING,
producte STRING,
quantitat INT,
import DOUBLE
)
COMMENT 'Taula de vendes TecnoShop - Joan Garcia'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ('creator'='joan.garcia', 'data.creacio'='2025');
-- Verificar l'esquema de la taula
DESCRIBE vendes_joan_garcia;
DESCRIBE EXTENDED vendes_joan_garcia;
5.3 Carregar les dades
-- Carregar les dades del CSV que hem pujat a HDFS
LOAD DATA INPATH '/user/joan_garcia/hive/vendes_joan_garcia.csv'
INTO TABLE vendes_joan_garcia;
-- Verificar que s'han carregat correctament
SELECT COUNT(*) as total_registres FROM vendes_joan_garcia;
-- Veure les primeres files
SELECT * FROM vendes_joan_garcia LIMIT 10;
LOAD DATA mou el fitxer
La comanda LOAD DATA INPATH mou (no copia) el fitxer des de la ruta HDFS especificada fins al directori de la taula Hive (/user/hive/warehouse/bd_joan_garcia.db/vendes_joan_garcia/). Si vols conservar el fitxer original, usa primer hdfs dfs -cp per a fer una còpia.
5.4 Consultes analítiques
-- Consulta 1: Total de vendes per categoria
SELECT
categoria,
SUM(import) as total_vendes,
COUNT(*) as num_transaccions,
AVG(import) as ticket_mitja
FROM vendes_joan_garcia
GROUP BY categoria
ORDER BY total_vendes DESC;
-- Consulta 2: Top 5 productes per import total
SELECT
producte,
categoria,
SUM(quantitat) as unitats_venudes,
SUM(import) as total_ingressos
FROM vendes_joan_garcia
GROUP BY producte, categoria
ORDER BY total_ingressos DESC
LIMIT 5;
-- Consulta 3: Vendes per mes (extreure el mes del format YYYY-MM-DD)
SELECT
SUBSTR(data_venda, 1, 7) as any_mes,
SUM(import) as total_mes,
COUNT(*) as num_vendes
FROM vendes_joan_garcia
GROUP BY SUBSTR(data_venda, 1, 7)
ORDER BY any_mes;
-- Consulta 4: Categories amb import mig per sobre de 200 euros
SELECT
categoria,
AVG(import) as import_mitja,
MAX(import) as import_maxim,
MIN(import) as import_minim
FROM vendes_joan_garcia
GROUP BY categoria
HAVING AVG(import) > 200
ORDER BY import_mitja DESC;
-- Consulta 5: Percentatge de vendes per categoria (subconsulta)
SELECT
categoria,
total_categoria,
ROUND(total_categoria / total_global * 100, 1) as percentatge
FROM (
SELECT
categoria,
SUM(import) as total_categoria
FROM vendes_joan_garcia
GROUP BY categoria
) t_cat
CROSS JOIN (
SELECT SUM(import) as total_global FROM vendes_joan_garcia
) t_global
ORDER BY percentatge DESC;
5.5 Crear una taula particionada (opcional, avançat)
-- Crear una taula particionada per categoria (millora el rendiment en consultes filtrades)
CREATE TABLE vendes_particionades_joan_garcia (
data_venda STRING,
producte STRING,
quantitat INT,
import DOUBLE
)
PARTITIONED BY (categoria STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
-- Activar la inserció dinàmica de particions
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
-- Insertar dades de la taula original a la particionada
INSERT INTO TABLE vendes_particionades_joan_garcia
PARTITION (categoria)
SELECT data_venda, producte, quantitat, import, categoria
FROM vendes_joan_garcia;
-- Verificar les particions creades
SHOW PARTITIONS vendes_particionades_joan_garcia;
-- Consulta sobre partició concreta (molt més ràpida en dades grans)
SELECT SUM(import) as total FROM vendes_particionades_joan_garcia
WHERE categoria = 'Ordinadors';
Part 6: Monitoratge de l'entorn
6.1 NameNode UI (http://localhost:9870)
Explora les seccions principals:
Overview: Estat general del NameNode, versió Hadoop, uptime, configuració de seguretat.
Datanodes: Llistat de DataNodes actius amb:
- Espai total i disponible
- Blocs emmagatzemats
- Data de darrer contacte
Utilities → Browse the file system: Navega l'arbre de directoris HDFS. Navega fins a /user/joan_garcia/ i verifica els teus fitxers. Clic sobre un fitxer per a veure els blocs i les seves ubicacions.
Utilities → Logs: Logs del NameNode per a diagnosi de problemes.
6.2 ResourceManager UI (http://localhost:8088)
Cluster → Applications: Veure tots els jobs executats (el teu WordCount hauria de apareixer com a FINISHED/SUCCEEDED).
Cluster → Nodes: Llistat de NodeManagers actius amb recursos (memòria, CPU).
Scheduler: Informació sobre la cua de jobs i la configuració del scheduler.
6.3 Comandes de monitoratge HDFS
# Dins del contenidor namenode-joan-garcia
# Estat general del sistema de fitxers
hdfs dfsadmin -report
# Verificar la salut de tots els fitxers (pot trigar en sistemes grans)
hdfs fsck /user/joan_garcia/ -files -blocks
# Quota d'espai del teu directori
hdfs dfs -count -q /user/joan_garcia/
# Estadístiques d'ús d'espai
hdfs dfs -du -s -h /user/joan_garcia/
Netejar l'entorn (al final de la pràctica)
# Aturar i eliminar tots els contenidors
docker compose down
# Eliminar també els volums (perd les dades HDFS)
docker compose down -v
# Eliminar les imatges (allibera espai en disc, ~3 GB)
docker rmi bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8
docker rmi bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8
docker rmi bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
docker rmi bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8
docker rmi bde2020/hive:2.3.2-postgresql-metastore
docker rmi bde2020/hive-metastore-postgresql:2.3.0
Preguntes de reflexió
Preguntes de reflexió
Sobre HDFS:
-
Has configurat
dfs.replication=1perquè tens un sol DataNode. Que passaria si configuréssimdfs.replication=3amb un sol DataNode? Ho podries provar? (Pista:hdfs dfsadmin -reportt'ajudarà a diagnosticar-ho) -
El NameNode emmagatzema el mapa de tots els blocs en memòria RAM. Per a un clúster de producció de Zara amb 100 PB de dades, quin problema podria generar això? Com el soluciona Hadoop amb la seva arquitectura HA?
-
Explica amb les teves paraules la diferència entre una taula Hive interna (managed) i una taula externa (external). Quina hauries d'usar si les dades les processen tant Hive com Spark?
Sobre MapReduce:
-
El teu WordCount ha trigat uns segons a executar-se sobre 20 línies de text. Si haguéssim de comptar paraules en 10 TB de text distribuïts en 1.000 nodes, com escalaria el temps d'execució? Quina és la gran aportació del model MapReduce en termes de rendiment?
-
Cerca a la documentació oficial d'Hadoop el job MapReduce de
TeraSort. Qué fa? Per qué és un benchmark popular per a mesurar el rendiment de clústers Hadoop?
Lliurament
Lliura un fitxer README_PR5075/02_joan_garcia.md (substitueix joan_garcia pel teu nom) que contingui:
- Captures de pantalla (mínim 5):
- NameNode UI mostrant el DataNode actiu
- Explorador de fitxers HDFS amb els teus fitxers
- ResourceManager UI amb el job WordCount completat
- Resultats del WordCount (les 20 paraules més freqüents)
-
Resultat d'almenys 3 consultes Hive
-
Respostes a les preguntes de reflexió
-
Dificultats trobades i com les has resolt
-
Temps emprat en cada part
Format de lliurament: Fitxer .md o .pdf penjat a l'aula virtual. Data límit: una setmana des de la sessió de pràctiques.
Rúbrica: Rúbrica PR5075/02