Delta Lake avec Apache Spark
Il existe différent format de fichier pour stocker la donnée : parquet, avro, csv. Connaissez-vous le format Delta Lake ? Découvrons les fonctionnalités de ce format.
Sommaire
Pour les amateurs de mythologie nordique, Munin et Hunin sont les deux corbeaux d’Odin. Ils surveillent les moindres recoins de Midgard et rapportent ensuite à leur maître. L’application qui nous intéresse aujourd’hui porte donc bien son nom car elle permet le monitoring et le reporting des constantes de vos différents serveurs, et est baptisée Munin. Après une rapide présentation, nous nous attarderons sur le processus d'installation de cette dernière et sur son utilisation.
Munin est une application self-hosted open-source (code sur GitHub) créée en 2002 et encore activement maintenue à ce jour. Elle propose une foule de plugins permettant de monitorer de nombreux éléments vitaux des vos machines comme l’usage des CPU ou de la RAM, le load-average ou encore le taux d’utilisation des interfaces réseaux. Le tout est affiché via une interface web sobre et efficace.
Le soft sauvegarde ces informations sur la durée et permet une visualisation sur une longue période de l’évolution des différentes métriques.
Enfin, il a la particularité de gérer autant de machine que vous le souhaitez grâce à un système de Master/Nodes simples et faciles à configurer.
Passons directement à l’installation de Munin sur le serveur Master à proprement parler :
sudo apt-get update
sudo apt-get install munin
Une fois cette installation terminée, nous pouvons passer à la configuration.
La configuration de Munin se trouve dans le fichier munin.conf
localisé dans le dossier /etc/munin
. Avec votre éditeur de texte préféré, ouvrez ce fichier de configuration pour pouvoir visualiser les premières options qui nous intéressent :
dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin
La ligne qui nous intéresse ici est le htmldir
. C’est dans ce dossier que seront stockées les pages et images statiques de l’interface web. N’hésitez pas à configurer ce chemin selon vos besoin, en fonction de l’installation de votre serveur web (Nginx, Apache, …)
La seconde partie de la configuration qui nous intéresse se situe plus bas, dans ce même fichier :
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
Il s’agit ici de l’endroit où nous allons référencer le master et les différents nodes afin de les monitorer. Par exemple, j’ai choisi de renommer mon master comme suit :
[ElevenMaster]
address 127.0.0.1
use_node_name yes
Le nom que j’ai choisi, ElevenMaster
, sera donc affiché sur l’interface web pour décrire ma machine, en l'occurrence le Master de notre infrastructure Munin.
Il ne reste plus qu'à sauvegarder et fermer le fichier de configuration puis relancer le service Munin pour prendre en compte ces nouvelles configurations :
sudo service munin-node restart
Les fichiers statiques de l’interface web devraient maintenant être disponibles dans le dossier indiqué précédemment dans la configuration (ligne htmldir
) :
Le monitoring de votre machine “Master” est donc bien en place. Voyons maintenant la suite.
Le monitoring de votre machine “Master” est donc maintenant en place.
L'intérêt majeur de Munin réside dans sa capacité à gérer pour vous une multitude de machine sans effort. Sur une seconde machine, il suffit donc d’installer le package munin-node
puis de procéder à deux petites configurations : l’une du côté du Node, l’autre du côté du Master.
L’installation du package tout d’abord :
sudo apt-get update
sudo apt-get install munin-node
Il vous faut ensuite configurer le munin-node pour autoriser le Master à récupérer les données requises. Cela se passe dans le fichier de configuration /etc/munin/munin-node.conf
, au niveau de la ligne autorisant le localhost :
allow ^127.0.0.1$
Il faut remplacer cette IP locale par l’ip publique du serveur Master, au format RegExp. Ce qui donnerait par exemple :
allow ^145\.78\.309\.444$
Relancez maintenant le service Munin-node pour prendre en compte cette configuration :
sudo service munin-node restart
De retour sur le Master pour la dernière étape, il nous faut ajouter le Node dans la liste des machine monitorée. Dans le fichier de configuration du Master (/etc/munin/munin.conf
), ajoutez le Node à la suite de la déclaration du Master faite précédemment. Il vous faudra y indiquer un nom représentant le Node ainsi que l’adresse IP de ce dernier. En reprenant notre exemple de tout à l’heure :
[ElevenMaster]
address 127.0.0.1
use_node_name yes
[ElevenNode]
address 267.117.81.341
use_node_name yes
Sauvegardez, fermez le fichier de configuration et une fois de plus relancez le service Munin pour prendre en compte ce nouveau Node :
sudo service munin-node restart
Au bout de quelques minutes, le temps que Munin récupère les informations du Node fraîchement ajouté, vous devriez voir apparaître votre seconde machine dans l’interface web :
Votre instance de Munin est maintenant en place. Vous pouvez à tout moment configurer des outils de monitoring spécifiques (apache, mysql, nginx, etc) grace aux plugins issus de la communauté, il y a beaucoup de choses très utiles.
Auteur(s)
Jérémy Bernard
Mainly JavaScript and backend stuff.
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème
Il existe différent format de fichier pour stocker la donnée : parquet, avro, csv. Connaissez-vous le format Delta Lake ? Découvrons les fonctionnalités de ce format.
Dans le domaine de la data, la qualité de la donnée est primordiale. Pour s'en assurer, plusieurs moyens existent, et nous allons nous attarder dans cet article sur l'un d'entre eux : tester unitairement avec Pytest.
Le domaine de la data est présent dans le quotidien de chacun : la majorité de nos actions peut être traduite en données. Le volume croissant de ces données exploitables a un nom : "Big Data". Dans cet article, nous verrons comment exploiter ce "Big data" à l'aide du framework Apache Spark.