mercredi 24 mai 2017

Hadoop et Big Data Studio

Tester Hadoop nécessite une configuration matérielle puissante. Presque toutes les distributions sandbox hadoop actuelles nécessitent au moins 8go de ram de disponible. J'en ai testé quelques une, mais difficile de travailler correctement si on a un pc avec 8go ram, et un windows qui prends déjà au minimum 2go.

Et suis tombé sur la distribution "Syncfusion Big Data Platform", avec cette distribution ,et les 6go de ram disponible, seul  le service spark refuse de démarrer par manque de mémoire avec le service Hbase laissé en arrêt (pour économiser un peu de ram), les autres composants Hdfs, pig, hive, fonctionnent correctement. Pas mal de démos accompagnent cette distribution.

Lien de téléchargement : https://www.syncfusion.com/products/big-data

Attention, c'est une version d'essai (30jours), télécharger la version pour développement.

L'installation est très simple.

A la fin de l'installation, lancer "Syncfusion Big Data Dashboard"

Cliquer sur "Service Manager", et attendre que les services hadoop et hive démarrent correctement


Cliquer sur "Launch Studio" : l'interface pour accéder graphiquement à tous les composants


Plan de test : charger un fichier dans HDFS et créer une table Hive pour faciliter l'exploitation, exploiter cette table depuis Qlik Sense 
1) Import de fichier dans Hdfs

Pour test, j'ai prix le fichier suivant :
https://www.data.gouv.fr/fr/datasets/les-moyens-consacres-a-la-r-d-les-entreprises-par-branche-d-activite-mesr/
Ce jeu de données présente les moyens financiers et humains consacrés à la recherche et au développement dans les entreprises par zone géographique, année, branche d'activité et type de personnel.

Pour insérer un fichier manuellement dans hadoop, il faut utiliser la commande :

hdfs dfs -copyFromLocal <fichier source> <hdfs de destination>

L'outil offre une interface graphique pour le faire facilement.

Depuis l'onglet HDFS, cliquer sur "New" pour créer le répertoire de destination
Sélectionner ce nouveau répertoire, et clique droit et choisir "Permissions" :


Pour charger le fichier, mettez-vous dans le répertoire créé, et cliquer sur le bouton "Upload", cocher "File", sélectionner le fichier que vous avez récupéré et cliquer sur "Upload"


2) Test du fichier dans Hdfs

Cliquer sur l'onglet "Hadoop", cliquer sur "Script" puis "New"
Et taper et exécuter la commande "hdfs dfs -tail /datawarehouse/fr-esr-rd-moyens-entreprises-branche.csv;" 

Cela affiche les derniers kilobytes notre fichier

3) Table Hive

Hive : c'est l'accès aux données en "Sql like" dans hadoop

Cliquer sur l'onglet "Hive", cliquer sur "New Database" pour créer une nouvelle base (ici dwh), et cliquer sur "Script" puis "New" pour exécuter un script de création de la table hive :

Il y a un bouton "New Table" pour créer la table, je préfère le faire en script, cela permet de gérer pas mal d'options, ci-après le script de création de la table :
CREATE TABLE dwh.stat_entreprise_rd(
code_zone_geo INT,
zone_geographique STRING,
annee INT,
code_indicateur STRING,
indicateur STRING,
code_type_pers INT,
type_de_personnel STRING,
code_branche INT,
branche_d_activite STRING,
secret STRING,
non_disponible STRING,
etat_des_donnees STRING,
valeur DECIMAL(12,2))
COMMENT 'Table contenant les stats RD des entreprises'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\u0059"
)
STORED AS TEXTFILE
LOCATION '/datawarehouse'
tblproperties ("skip.header.line.count"="1");

"separatorChar" = "\u0059" -> indique le séparateur ";"
tblproperties ("skip.header.line.count"="1") -> pour ignorer la première ligne

Testons avec le sql suivant :

select zone_geographique,sum(valeur) from dwh.stat_entreprise_rd group by zone_geographique;


A suivre : exploitation de la table


Aucun commentaire:

Enregistrer un commentaire