Introduction
Bienvenue à la Station de Commerce Intergalactique, un carrefour animé où les marchands et les voyageurs de toute la galaxie convergent pour échanger des biens et des services. En tant que mécanicien expérimenté de la station spatiale, vos compétences sont très recherchées pour maintenir les systèmes de la station en parfait fonctionnement. Aujourd'hui, vous avez été chargé d'analyser et d'optimiser l'allocation des ressources de la station en triant les données selon les modèles d'utilisation.
Votre objectif est de développer une solution basée sur Hadoop qui peut traiter et trier efficacement de grands ensembles de données, en vous assurant que les ressources de la station sont allouées de manière efficiente pour répondre aux exigences en constante évolution de ses nombreux visiteurs.
Configurer l'environnement
Dans cette étape, nous allons configurer l'environnement pour notre projet Hadoop et créer un ensemble de données d'échantillonnage.
- Ouvrez un terminal et basculez sur l'utilisateur
hadoopen exécutant la commande suivante :
su - hadoop
- Créez un nouveau répertoire appelé
sorting_labdans le répertoire/home/hadoop:
mkdir /home/hadoop/sorting_lab
- Accédez au répertoire
sorting_lab:
cd /home/hadoop/sorting_lab
- Créez un ensemble de données d'échantillonnage en exécutant la commande suivante :
echo -e "apple\t5\nbanana\t3\norange\t7\ngrape\t2\nstrawberry\t6" > fruit_sales.txt
Cette commande crée un fichier nommé fruit_sales.txt avec le contenu suivant :
apple 5
banana 3
orange 7
grape 2
strawberry 6
Chaque ligne du fichier représente un fruit et son chiffre d'affaires, séparés par un caractère tabulation.
Charger des données dans Hive
Dans cette étape, nous allons créer une table Hive et charger l'ensemble de données d'échantillonnage dans celle-ci.
- Démarrez le shell Hive en exécutant la commande suivante :
hive
- Créez une nouvelle base de données appelée
sorting_db:
CREATE DATABASE sorting_db;
- Utilisez la base de données
sorting_db:
USE sorting_db;
- Créez une nouvelle table appelée
fruit_salesavec deux colonnes :fruit(chaîne de caractères) etcount(entier) :
CREATE TABLE fruit_sales (fruit STRING, count INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
- Chargez le fichier
fruit_sales.txtdans la tablefruit_sales:
LOAD DATA LOCAL INPATH '/home/hadoop/sorting_lab/fruit_sales.txt' OVERWRITE INTO TABLE fruit_sales;
- Vérifiez que les données ont été correctement chargées en exécutant une requête
SELECT:
SELECT * FROM fruit_sales;
Ceci devrait afficher :
apple 5
banana 3
orange 7
grape 2
strawberry 6
- Sortez du shell Hive en exécutant la commande suivante :
quit;
Trier les données par utilisation
Dans cette étape, nous allons trier la table fruit_sales par la colonne count dans l'ordre décroissant en utilisant la clause ORDER BY d'Hive.
- Démarrez le shell Hive en exécutant la commande suivante :
hive
- Utilisez la base de données
sorting_db:
USE sorting_db;
- Exécutez la requête suivante pour trier la table
fruit_salespar la colonnecountdans l'ordre décroissant :
CREATE TABLE result AS
SELECT * FROM fruit_sales ORDER BY count DESC;
SELECT * FROM result;
Ceci devrait afficher :
orange 7
strawberry 6
apple 5
banana 3
grape 2
- Sortez du shell Hive en exécutant la commande suivante :
quit;
Résumé
Dans ce laboratoire, nous avons exploré la fonction "Trier par utilisation" dans Hadoop Hive. Nous avons commencé par configurer l'environnement et créer un ensemble de données d'échantillonnage. Ensuite, nous avons appris à charger les données dans une table Hive et à trier la table par une colonne spécifique en utilisant la clause ORDER BY.
Le laboratoire a offert une expérience pratique dans le travail avec Hive et a démontré comment trier les données en fonction des modèles d'utilisation. En maîtrisant cette compétence, vous pouvez analyser et optimiser efficacement l'allocation des ressources dans diverses situations, telles que la Station de Commerce Intergalactique.
Au cours du laboratoire, nous avons également utilisé des vérificateurs pour vérifier la réussite de chaque étape, vous assurant d'avoir acquis les connaissances et l'expérience pratique nécessaires pour affronter des défis similaires à l'avenir.



