0% ont trouvé ce document utile (0 vote)
4 vues4 pages

Guide d'importation de données avec Hive et Sqoop

Transféré par

shayma.haouas
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues4 pages

Guide d'importation de données avec Hive et Sqoop

Transféré par

shayma.haouas
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

Hive

solution d'nrtropot de donné


pas specialiser path de stockage c table interne
/t espace separateur entre les champs c un espace
select from livres where id=2

location '/user/cloudera/atelier3' ;
creeer table livre vente
create table livrevente (id int, title spring, buyer string, purchaseDate string)
row format delimited
fields terminated by ','
stored as textfile;
jointure avec id
insert into table ventes livresvente
select [Link] , [Link] , [Link], [Link]
from livres l join ventes v

on [Link]=[Link];
set [Link]=false; (executer sous forme mapreduce normal) pour
desactiver le job mapreduce de type map
scooppp!!!
importe base de donne avec metadata : importer structure et donnee integralite de
base de donnee les donner brute sous forme fich binaire avrofiles -> sous hdfs/
/schema relationnel [Link]-> local ( shcema et donner meme forme de fich pas
meme emplacement)
importe sans metadata pas manipuler fich binaire ( importer les donner brute
mandhomsh schema relationnel)
in workshop
scoop import import all tab
-m1/ un seul mapper
compression-code ... reduire taille bd
as-avrodatafile/ on va importer schema relationner ( kn mnhotouhesh c t dire sans
metadata)
warehouse.... bd sous cette path
ls -l *.avsc afficher tout les fich qui on .avsc

create table (path)


importer bd avec metadata =workshop sous forme [Link] dans hdfs we find them
schema rela in local baaed taamlo copier iwely onread
creation des table we dnt have to put the path kjust the name si on met path on
peut pas faire load sinon we load
sqoop import-all-tables \
-m 1 \
--connect jdbc:mysql://localhost:3306/elections_tunisie_2024 \
--username=root --password=cloudera \
--compression-codec=snappy \
--as-avrodatafile \
--warehouse-dir=/user/hive/warehouse/[Link]
hdfs dfs -ls /user/hive/warehouse/[Link]

sans md
sqoop import-all-tables --connect
jdbc:mysql://localhost:3306/elections_tunisie_2024 --username root
--password cloudera --warehouse-dir /user/hive/warehouse/[Link] --driver
[Link] --num-mappers 1
avec md
--connect jdbc:mysql://localhost:3306/elections_tunisie_2024 \
--username root --password cloudera \
--compression-codec snappy \
--as-avrodatafile \
--warehouse-dir /user/hive/warehouse/[Link] \
--driver [Link] \
-m 1 \

CREATE EXTERNAL TABLE : Crée des tables externes dans Hive. Ainsi, si vous
supprimez la table,
les données sous-jacentes sur HDFS ne seront pas supprimées
stored in /user/hive/warehouse/depts
CREATE EXTERNAL TABLE candidats (
id_candidat INT,
nom STRING,
parti STRING,
age INT,
experience STRING
)
STORED AS AVRO
LOCATION '/user/hive/warehouse/[Link]/candidats';

CREATE TABLE

External Table: The EXTERNAL keyword tells Hive that it should not manage
the actual data, only the schema. Dropping
the table will not delete the data.
Managed Table: Without EXTERNAL, the table is managed by Hive, which means Hive
will
control the data and metadata. Dropping the table will delete
both the data and the schema.

PROJET BIG DATA


[Link]: The line for line in [Link]: is the key part where the script reads
the voting data.
[Link] represents the standard input stream in Python. When this script is
executed in the context of a
Hadoop streaming job, Hadoop provides the input data to the mapper via standard
input.

Hadoop Streaming: When you run a Hadoop streaming job, Hadoop takes the input
file(s) specified
in the -input parameter (in your case, [Link]) and pipes the contents of that
file to the mapper.
Each line of the input file is passed to the mapper one at a time, allowing the
mapper to process the data line by line.

set [Link]=false;

SELECT
c.id_candidat,
[Link] AS nom_candidat,
d.id_district,
[Link] AS nom_district,
COUNT(v.id_vote) AS total_votes
FROM
candidats c
JOIN
votes v ON c.id_candidat = v.id_candidat
JOIN
districts d ON v.id_district = d.id_district
GROUP BY
c.id_candidat, [Link], d.id_district, [Link]
ORDER BY
d.id_district, total_votes DESC;

cd /home/cloudera/

nano [Link]

mapper:
#!/usr/bin/env python
import sys

for line in [Link]:


line = [Link]()
parts = [Link]("\t")
if len(parts) >= 2:
candidate = parts[0]
district = parts[1]
print("{0}\t{1}\t1".format(candidate, district))
reducer:
#!/usr/bin/env python
import sys
from collections import defaultdict

count_dict = defaultdict(int)

for line in [Link]:


line = [Link]()
candidate, district, count = [Link]("\t")
count_dict[(candidate, district)] += int(count)

for (candidate, district), total_votes in count_dict.items():


print("{0}\t{1}\t{2}".format(candidate, district, total_votes))

chmod +x [Link]
chmod +x [Link]

(((ls /usr/lib/hadoop-mapreduce/)) see jars that we have


hadoop fs -ls /user/cloudera
hadoop fs -put ~/Desktop/[Link] /user/cloudera/[Link]
move the fich data from desktop to user/cloudera

0
0
commande texecuter haddoop en utilisant fichier JAR pour le streaming l ikhalina
njmo nexecuto des script python mapper reducer
L’option -files spécifie des fichiers supplémentaires que Hadoop distribuera sur
chaque nœud exécutant le mapper et le reducer.
ont les chemins de vos scripts mapper et reducer. $(pwd) est remplacé par le chemin
de votre répertoire [Link]/cloudera
Cette option indique à Hadoop d’utiliser [Link] comme script mapper.
Ceci spécifie le fichier d'entrée pour le job, situé dans le système de fichiers
Hadoop.
[Link] contient les données que vous souhaitez traiter.
Ceci spécifie le répertoire de sortie pour le job.
dataoutputN contiendra le résultat produit par votre script reducer. (Si le
répertoire existe déjà,
il faut le supprimer avant de relancer le job pour éviter des erreurs.)

hadoop fs -ls /user/cloudera/dataoutputN


hadoop fs -cat /user/cloudera/dataoutputN/part-00000
Ces deux commandes Hadoop sont utilisées pour examiner
les résultats d'un job MapReduce stocké dans le système de fichiers Hadoop
Cette commande liste les fichiers et répertoires dans le répertoire
/user/cloudera/dataoutputN de HDFS.
Elle permet de vérifier si le job MapReduce a bien créé le répertoire
de sortie et quels fichiers s’y trouvent
(par exemple, part-00000, qui est la sortie générée par le reducer).

hadoop fs -cat /user/cloudera/dataoutputN/part-00000 :

Cette commande affiche le contenu du fichier part-00000 dans la console.


part-00000 est généralement le fichier de sortie créé par le reducer.
Il contient les résultats finaux
du job MapReduce (par exemple, les comptes agrégés ou les résultats de calcul).

les commande
ls -l *.avsc (avec shema relationnel aved les donner brute)
hdfs dfs -ls /user/hive/warehouse/[Link] les fich associe aux table
importé dans le repertoire hdfs de hive (affich conntenu de rep)
hdfs dfs -ls /user/hive/warehouse/[Link]/candidats
hadoop fs -ls /user/cloudera/dataoutputN
hadoop fs -cat /user/cloudera/dataoutputN/part-00000

Hadoop est un framework open source conçu pour le traitement


et le stockage de grandes quantités de données
Hadoop utilise le système de fichiers HDFS
Hive est un système de data warehousing construit sur
Hadoop. Il permet aux utilisateurs d'interroger,
de grandes quantités de données
stockées dans HDFS en utilisant un langage similaire au SQL appelé
HiveQL (ou HQL). Hive traduit automatiquement ces requêtes en
jobs MapReduce pour exécuter les opérations sur le cluster Hadoop.

Vous aimerez peut-être aussi