Projet

Ce projet consistera à monter une petite suite permettant d'exploiter les données de stations de vélo.

Chaque groupe se verra mis à disposition une machine virtuelle contenant une sandbox HortonWorks dans un conteneur docker.

Données

Une archive contenant un historique des données est disponible via une URL qui sera envoyée par e-mail. Par ailleurs il sera demandé de mettre au point une historisation des données actuelles en consultant les données concernant des stations de la ville de Lyon sur le site https://developer.jcdecaux.com. A noter qu'il sera nécessaire de demander une clé d'API sur ce site pour pouvoir accéder à ces données.

Travail demandé

Il est demandé:

  • De mettre en place un chargement via Kafka des données CSV fournies ainsi que les données récupérées via l'API Web
    1. dans HDFS
    2. dans des tables Hive
  • Pour les données récupérées via l'API Web, envoyer également ces données vers une topologie Storm qui détectera les situations où:
    • Il n'y a plus de vélos / de place disponible
    • La disponibilité en vélos d'une stations sur les 3 dernières heures est inféreure à 5
    • Renvoyer un message d'alerte, via Kafka
  • Archiver les messages d'alerte dans HDFS/Hive
  • Afficher un graphique de taux d'occupation pour une station donnée via Zeppelin (notebook Web permettant de produire des graphiques)

Il est demandé de produire un rapport par binôme explicitant la mise en place des différents éléments de gestion des données demandés.

Sandbox HortonWorks

Pour travailler confortablement, il est conseillé de rediriger un certain nombre de ports lors la connexion ssh sur la machine openstack. Ce script shell permet cette redirection.

ssh-add pedabdcloud
bash ssh-forward 192.168.73.xxx # remplacer xxx par la bonne fin d'IP

Une fois sur la machine openstack, le script start_sandbox.sh permet de démarrer le conteneur docker sandbox HortonWorks. Ce conteneur expose ses ports directement sur la machine openstack qui seront accessible sur votre machine via le tunnel SSH. La page d'accueil de la sandbox est donc disponible à l'adresse http://localhost:8888/. En cliquant sur Launch Dashbord, deux fenêtres s'ouvrent: une fenêtre sur l'application Ambari (login raj_ops, mot de passe raj_ops) et une autre sur une liste de tutoriaux. Ambari est le tableau de bord de HortonWorks et permet d'accéder aux différentes interfaces Web des services installés (en général en cliquant sur le service, puis sur “Quick links” ou la petite icône de matrice 3×3 dans la barre du haut).

Les services utiles pour le projet sont essentiellement:

  • HDFS
  • Hive
  • Zeppelin
  • Kafka (non démarré par défaut)
  • Storm (non démarré par défaut)
  • Spark peut également être utilisé

Les tutoriaux permettent de prendre assez rapidement en main chacun de ces outils. <note tip>Il est souvent utile de se connecter directement dans le conteneur en ssh pour lancer des commandes. Il faut se connecter sur localhost au port 2222:

ssh -p 2222 root@localhost

Le mot de passe par défaut est hadoop. A la première connexion, il est demandé de le changer.</note>

Kafka

Un tutoriel Kafka permet de démarrer rapiement en pratique. Quelques point sont à noter vis-à-vis de son utilisation dans la sandbox:

  • Le répertoire bin de kafka est /usr/hdp/2.5.0.0-1245/kafka/bin
  • Kafka est à démarrer via Ambari (il faut sauter les 2 premières étapes du tutoriel)
  • L'url du broker kafka est localhost:6662 sandbox.hortonworks.com:6667

Pour écrire dans le HDFS depuis Kafka, il est conseillé d'utiliser le connecteur HDFS. A défaut, on pourra utiliser Apache Flume, mais ce dernier peut poser des problèmes de performances.