[Internet of Things] Hortonworks : installation, configuration et utilisation de NiFi avec HDF

Ce billet présente comment installer et configurer la plateforme HDF (Hortonworks Data Flow) pour utiliser NiFi.

Linux sera utilisé comme système d’exploitation, et la distribution choisie sera CentOS, qu’on supposera déjà installée, au sein d’un serveur appelé til-srv-hdf01.

Pour en savoir plus sur NiFi, vous pouvez aller ici.

Avant de commencer…

Recommandations générales

Comme tout système qui se respecte, HDP possède un certain nombre de prérequis.

  • Au niveau OS.
    • Red Hat Enterprise Linux (RHEL) : 6.x minimum.
    • CentOS : 6.x minimum.
    • Ubuntu : 11.x minimum.
    • Oracle Linux : 6.x minimum.
    • SUSE Linux Enterprise Server (SLES) : 11.x SP1 minimum.
    • Windows 2008 minimum ou 7 minimum (sous conditions).
  • Au niveau logiciel.
    • Un framework Hadoop, si vous souhaitez interagir avec (notamment via Kafka, Storm,…). Vous pouvez installer HDP 2.x minimum.
    • Maven 3.1 minimum.
    • JDK :
      • Oracle JDK 64 bits 1.7.67 minimum.
      • OpenJDK 64 bits 7 minimum (sauf pour SLES).
    • Navigateur Web :
      • Mozilla Firefox 18 minimum.
      • Google Chrome 26 minimum.

Préparation de l’environnement

Consultez impérativement le (très complet) guide d’administration système de NiFi ici. Vous y trouverez une roadmap relative à la configuration du système, de la sécurité, de diverses propriétés du cluster NiFi (et notamment du fichier nifi.properties), etc… Ainsi que les bonnes pratiques associées.
Si vous installez HDF sur le même serveur que HDP, dont le port par défaut est 8080, vous pouvez modifier le port HDF sur la ligne du fichier nifi.properties suivante : nifi.web.http.port=8090.

Téléchargement de HDF

Il existe diverses façons de télécharger HDF, suivant la nature des accès aux sources de téléchargement : accès Internet permanent (opter pour l’URL de base), accès Internet temporaire (opter pour un repository), pas d’accès Internet (opter pour un tarball).

Suivant le système d’exploitation d’utilisé, vous pouvez choisir votre dépôt (ou repository) ici.

Sous Linux CentOS/RedHat, la commande suivante permet de lister les repositories installés :

yum repolist

Plus généralement, les sources officielles de HDF sont téléchargeables à l’adresse suivante : https://hortonworks.com/downloads/#data-platform#hdf.

Entrée dans le vif du sujet

Installation et lancement de NiFi

Pour installer NiFi en tant que service, il suffit de lancer la ligne de commande suivante (à partir du répertoire d’installation) :

bin/nifi.sh install <service_name>

<service_name> est le nom (facultatif) à attribuer au service NiFi à installer.

Le lancement de NiFi est assez simple :

  • En tant que service :
sudo service nifi start
  • En avant-plan :
bin/nifi.sh run
  • En arrière-plan :
 

 bin/nifi.sh start 

La ligne de commande suivante permet de connaître le statut du service NiFi:

sudo service nifi status

Il suffit de remplacer « status » par « stop » pour l’arrêter.

Accès à l’interface NiFi

  • Authentification au serveur NiFi.

Pour ce faire, il suffit de taper http://til-srv-hdf01.timeislife.io:8080 sur un navigateur Web (le FQDN peut être remplacé par localhost, si le fichier des hosts est correctement configuré).


 

Les informations d’accès sont, par défaut admin, à la fois pour le login et le mot-de-passe. Ils peuvent bien sûr être changés au sein de l’interface Ambari.

Utilisation de NiFi

L’interface de NiFi est très ergonomique. Elle offre notamment la possibilité de :

  • Glisser-déplacer des processeurs pour construire un flux.
  • Configurer, démarrer ou arrêter des composants en temps-réel.
  • Créer des modèles de processeurs et de connexions.
  • Suivre les statistiques des flux des données.
  • Consulter les messages d’erreur.

Une roadmap simple de construction d’un data flow avec NiFi pourrait être la suivante :

  • Ajout d’un processeur de type Get pour la consommation de données en entrée.

Il suffit de cliquer sur l’icône de la barre d’outils, puis de sélectionner le type de processeur (dans notre cas, GetFile) :


  • Configuration du processeur d’entrée choisi.


Exemple : traitement de sources de données issues d’un répertoire nommé inputfile.


A noter qu’il est bien sûr possible d’attribuer un nom au processeur (par exemple, Get Files).

  • Ajout d’un processeur de type Put pour les données en sortie, via la même approche que pour un processeur de type Get.
  • Configuration du processeur de sortie choisi.

Avec spécification du dossier de sortie, en faisant pointer NiFi vers les fichiers de configuration HDFS, dans le cas d’un processeur de type PutHDFS, pour le stockage d’informations sur Hadoop.


Les chemins d’accès peuvent changer d’un système à l’autre.

  • Liaison des processeurs et configuration de la connexion, via une flèche à configurer (succès ou échec).


  • Lancement des traitements, via l’icône de la barre d’outils.

Pour aller plus loin…

Jetez un coup d’œil ici pour plus de références sur NiFi, qui s’appliquent également à HDF. Pour plus d’articles autour de l’IoT, vous pouvez aller .

*

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s