Translate

vendredi 29 mai 2015

Premier pas sur Hadoop Part2

Dans la première partie du tutoriel on a pu installé Hadoop (la distribution Hortonworks) sur Google Cloud Compute. Si votre installation s'est bien déroulée vous pouvez maintenant accéder au dashboard d'Ambari qui est un moniteur et un outil de de déploiement de service sur Hadoop.
Si l'ensemble de vos services sont au vert c'est que votre installation s'est bien déroulée. Nous allons dans la suite explorer les différents sous-projets et voir un peu leur cas d'utilisation.

HDFS
C'est un système de fichier distribué. Les fichiers sont découpés en blocs et les blocs recopiés plusieurs fois sur la machine du cluster notamment les datanodes. Il  existe un noeud central qui sert de répertoire pour  toutes les informations sur les fichiers et la façon dont les blocs du fichier sont distribués sur les datanodes : le namenode.  
Concrètement vous accédez à votre système  de fichier hdfs en tapant dans commandes proches d'unix précédé hadoop fs -
Ainsi cette commande liste le contenu de votre répertoire / sur hfds. Ce contenu est complètement différent de celui de votre système local 
Dans la suite nous allons créer un fichier solde et le charger sur hdfs.
HDFS assure pour vous (out of the box) une replication des données. Vous auriez pas besoin de mettre en les disque en RAID ni quoique ce soit d'autres.

Mapreduce 
Mapreduce est avant tout un paradigme de programmation distribué. Vous devriez avoir des librairies dans votre langage de  programmation pour faire du mapreduce. Voici un lien qui présente programme de wordcount en java.
On se rend compte que bien qu'il apporte un gain sur les traitements de grand volume de données mais écrire du code mapreduce n'est pas quelque chose d'aisé surtout si on a une direction informatique d'expert SQL  et script shell :). Les projets PIG et Hive que nous allons présenter par la suite vont remédier à ces manquements.

HIVE
C'est la sur-couche SQL de la écosystème Hadoop. Il permet de faire des requêtes  sur les fichiers qui sont sur HDFS avec un langage proches de SQL (surtout de MySQL). Pour se connecter au shell il suffit de taper hive
Je reviendrai un peu plus en détail sur les formats de données( ROW FORMAT) dans les prochains blogs. Il nous suffit de charger notre fichier solde dans la table et notre table hive est prête.
Si nous voulons avoir par exemple la somme des balances la requête est traduite dans un programme mapreduce et nous renvoie le résultat
Soyez pas surpris par les performances sur un fichier de quelques lignes mapreduce sera plus lent qu'une base de données relationnelle sur les petites quantités de données.  L'idée ici est de principalement montrer le fonctionnement et non la performance du système. Mapreduce et du coup Hive ont  de la latence. Les temps de réponse sont de l'ordre de la secondes et Mapreduce est fait pour les traitements batch sur les gros volumes de données
Nous allons reprendre le même exemple avec pig.

Pig
Pig est langage de scripting proche du shell. Pour accéder au shell pig c'est tout aussi simple, tapez pig. Pour faire la même opération que quand Hive tout à l'heure on procède comme ci-dessous 
Il faudra recharger de nouveau le fichier solde dans /user/horalass dans hdfs car au LOAD de Hive déplace le fichier solde dans /apps/hive/warehouse/test.db/solde. Je reviendrai dans un autre blog post pour expliquer ce mécanisme. 
Enfin pour défaut pour les commandes hadoop si le répertoire n'est pas précisé il va chercher le fichier dans le home de l'utilisateur ( /home/horalass dans mon cas)
Dans la troisième partie je vais soit présenter d'autres sous-projet d'hadoop ou bien présenter l'approche Talend for big data.

lundi 25 mai 2015

Premier pas sur Hadoop Part1

Hadoop, Big Data, NoSQL vous ne savez plus où mettre de la tête. Dans une série de billets je vais essayer de partager mes premières expériences avec ses écosystèmes ou environnements :) (je ne sais pas comment les appeler).
C’est vrai qu’une des choses que l’informatique fait de mieux ce sont des buzzwords mais je vais essayer d'expliquer toutes ces notions dans un language pas très technique en tout cas je vais essayer.
Tout part de la bulle  Internet des années 2000. Les nouveaux géants du web étaient confrontés à une grande charge et de nouveaux types de données auxquelles l’informatique n’a jamais été confrontée auparavant. Il fallait tenir des charges de plusieurs millions de connexions et aussi être capable de prévoir les montées en charge( scalabilté horizontale). La structure des données aussi a beaucoup changé.  Des données très structurées des entreprises on passe à des données semi structurées ou pas structurées. Pour ces géants de l’internet il fallait innover : créer des sous branches de l’informatique qui n’existe pas encore.
Ces innovations se sont essentiellement axées sur 2 parties : l’infrastructure et le stockage des données. Pour l’infrastructure il s’agissait d’utiliser une architecture qui se base sur plusieurs petites machines (commodity hardware) voir machines virtuelles et ainsi avec ce cluster de petites machines avoir plus de puissance et de capacité en lieu et place des grosses machines (mainframes). Cela a abouti au final au offre de  cloud public que l’on a aujourd’hui ( amazon aws, google cloud compute …).
Coté stockage de données il fallait trouver une alternative aux bases de données relationnelles qui étaient un peu rigide pour les types de données auxquelles ils faisaient face. Si vous avez une fois essayé de gérer un graphe dans une base de données relationnelles vous êtes déjà rendu compte que c’était un peu délicat ( sinon voir les articles de SQLpro http://sqlpro.developpez.com/cours/arborescence/  http://sqlpro.developpez.com/cours/modelisation/metadonnees/ pour vous faire une idée). On a eu droit au mouvement NoSQL pour Not Only SQL qui ont proposé des bases données orientées colonnes, document, graph, clé-valeur etc. pour répondre à leurs besoins spécifiques d'une part. D'autres part on eu le mouvement Big Data. Le Big Data vient de la masse de données que ces derniers ont accumulé aux cours des années mais ne ce limite pas qu'au volume. Généralement on définit le Big Data par les 3V (Volume, Vélocité, Variabilité) mais c'est plus la capacité à stocker puis à analyser les données dans façon convenable dans un monde qui se numérise de plus en plus. 
Dans ce tutorial je vais me concentrer sur la partie Big Data et vous parlez de Hadoop qui est un écosystème de Big Data. 
L’aventure Hadoop commence avec un article de recherche de Google ( Jeff Dean et confrères ) qui décrivait l’architecture distribuée que Google avait mis en place pour le stockage et processer les grandes quantités de données. Doug Cutting part de cet article de recherche et implémente une version open source de l’architecture : c’est la naissance d’Hadoop. Plus tard Yahoo embauche Doug pour mettre en place la même architecture chez eux.
Hadoop est en gros un écosystème Big Data constitué de plusieurs sous projets. Le noyau d'Hadoop se compose essentiellement de deux parties :
HDFS :
C’est un sytème de fichier distribué. Il décompose le fichier en bloc et fait plusieurs copies de ses blocs de fichiers sur plusieurs machines du cluster. Le nombre de copie est généralement de 3. Ainsi il garanti une tolérance à la panne. Ainsi une machine voir un rack peut tomber en panne sans que vous vous préoccupez de la  perte de données.
Mapreduce :
C’est un framework de calcul distribué. Pour ne pas être trop technique sur le principe vos calculs sont distribués sur plusieurs machines de votre cluster. La technique est illustrée par l'image de ce tweet qui au lieu de faire les sandwichs l'un à la suite des autres parallélisme la préparation. Mapreduce est basé sur ce même principe. 
Au fil des années d'autres sous-projets se sont ajoutés à cette partie de base. Nous allons en parler dans la seconde partie de ce tutoriel.

Hadoop reste une architecture à explorer si vous avez des problèmes de charges, des requêtes qui durent trop longtemps etc…Alors par où commencer!!!  Hadoop tout comme linux a plusieurs distributions : Cloudera, Hortonworks, Mapr etc…Donc vous pouvez récupérer une machine virtuelle d’une des distributions. Il faut avoir en moyenne 8GB de RAM pour pouvoir travailler convenablement avec ces machines virtuelles. C'est une manière facile de commencer sans avoir à s'essayer à l'exercice délicat d'une installation manuelle. Une autre option c’est de déployer un cluster sur un provider de cloud ( Amazon aws, Google compte, Microsoft Azure etc). Si vous avez un compte gmail, Google offre un essai de gratuit de 60 jours de sa plateforme cloud. 

Vous avez 2 options : le déploiement en un seul click https://cloud.google.com/launcher/explore?q=hadoop (version minimale) et aussi une version complète de la distribution d’hortonworks. Je vous conseillerai d’installer la version complète d’hortonworks (Cela vous permettra d’explorer plusieurs sous-projets d'hadoop )   en suivant ce lien https://github.com/GoogleCloudPlatform/bdutil/blob/master/platforms/hdp/README.md
Dans la seconde partie de ce tutoriel on décrira les différentes composantes de la plateforme hadoop et leur cas d'utilisation.

jeudi 28 août 2014

Last lecture : Really achieving your childhood dream by Dr Randy Pausch


Few days ago, i came across Dr Randy Pausch last lecture he did, in Canergie Mellon University in my social media feeds. I washed the lecture and I was fascinated by the whole history. So I googled Randy Pausch and found this book.
Randy Pausch is a Canergie Mellon Computer Science Professor, and he was diagnosed with a pancreatic cancer and had 6 month or so to live ( of good heath  as Randy used to said it). 
The highlight of the book is about the last lecture he did entitled «  Really achieving your childhood dream ».  He gone through each of his child’s dream and how he overcame each of them and what he learned from his failure. For him «  experience is  what you get when you didn't get what you wanted ». He wished he can be an NFL football professional. He told us the history of his first coach, coach Graham who for a training didn’t bring a football. That looked weird to them but the coach explain to them that, at one point of time only one person has the ball on the field so they are going to exercise what the others 21 persons would be doing : running :). The takeoff of this story is : it’s all about fundamentals and there is no shortcut if you want to be good at something than practicing over and over again.
When Randy first visited Disney, he was delighted and wished he can make scenery for  Disney like these ones.  His dream came true and he worked 6 month for Disney and after that declined a job offer.  Achieving his own dream was not enough, so as a teacher he needed to help students doing the same. He did it for one of his staff member and at scale, setting up a multidisciplinary course in which  any  student is admitted from computer science major to art major.  The book is fun and tragical if you know the end of the story but full of great quote like those one : "The Luck is indeed where preparation meets opportunity" "We cannot change the cards we are dealt, just how we play the hand"
The lecture was really a head fake,  Randy was really sending a post-mortem message to his two sons and daughter. They were still young, the book and the lecture is a way for him to advise them even when he will not be around.
Trust me and check this 10mn summary of his talk  and if you like it the full talk is here. Still want more grab a copy of the book here. The combo is worth your time, really.

mardi 20 mai 2014

Book review : Talend for Big Data by Bahaaldine Azarmi

Bahaaldine Azarmi is a former Oracle and Talend employee. He is now specialized in real-time architecture. In this book " Talend for Big Talend " he assumes that you are already familiar with talend for data integration, so he focused only on big data components. He used a cloudera virtual box as a standbox for a quick start. In the book the author took  twitter sentiment analysis example to explain  Hive, Pig, Sqoop ( Hadoop landscape). The book is organized as follow : 
Chapter 1 : Getting Started with Talend Big Data 
Chapter 2 : Building Our first Big Data Job 
Chapter 3 : Formatting Data 
Chapter 4 : Processing Tweets with Apache Hive 
Chapter 5 : Aggregate Data with Apache Pig 
Chapter 6 : Back to the SQL Database 
Chapter 7 : Big Data Architecture and Integration Patterns
Appendix : Installing Your Hadoop Cluster with Cloudera VM
My concern is that he didn't  go in detail explaining when you should consider using hadoop and big data in your integration process. For somebody with no hadoop and big data knowledge this is a must have chapter to introduce correctly the topics. Also there is a lack of some useful cases where you can see the performance in using Big Data architecture integration  compare to a normal integration process. But if you are already using Talend for Data Integration and want to take a journey on the Big Data world this book can be a good start.
You can purchase a copy here

mardi 6 mai 2014

Retour de Devoxx France et Mix-it 2014

Je passe beaucoup de temps à regarder les conférences en ligne. C'est cool mais on n'a pas la même ambiance que ceux de l'intérieur et j'ai toujours voulu participer à une grande conférence juste pour le fun :). Quand Agnès Crépet m'a proposé de faire une keynote à Mix-IT sur les communautés et le monde du IT en Afrique j'étais super super content. Non seulement j'aurai la chance de suivre d'autres conférences mais aussi je suis invité ( Ca ferait moins mal à ma poche). Uniquement cette première proposition était déjà très grande pour moi mais elle revient quelques jours plus tard  pour me dire qu'elle a aussi négocié une place sponsor avec Google pour moi pour que je puisse participer aussi Devoxx France. Je ne sais pas comment elle arrive à être active dans autant de communauté mais elle y arrive. Je suis pas le seul à me poser cette question donc tout va bien chez moi je me pose les bonnes questions. Si comme moi vous pensez qu'on doit étendre les contrôles anti-dopages à d'autres disciplines suivez mon regard vous êtes le bienvenu.
Donc pour Devoxx j'ai eu mon badge Google et  aussi Google a payé mon hôtel sur Paris et les tickets de train Paris-Lyon.

Un très grand merci à eux
Devoxx c'est une grande conférence 1400 participants, 200 speakers...Ton badge te permet de voter par contact NFC :)

Je vais donner mon retour sur les sessions techniques dans d'autres billets au fait :)

Pour Mix-it je devais faire une keynote sur les communautés techniques en Afrique. J'avais jamais fait une keynote par le passé. L'équipe de Mix-it m'a beaucoup sur presque tous les plans ( à rendre les slides meilleurs, les premiers cobayes sur lesquels je teste mon talk). Ils étaient  sont tous super sympathiques. J'étais stressé durant toute la conférence parce qu'étant l'avant dernier speaker. C'est jamais une bonne position de passer tard :). On est super impatient et on stresse à mort. Surtout quand tu vas voir certains speakers qui débitent 100 mots par secondes et circulent sur tout le podium de droite à gauche comme s'ils étaient à la maison :). Tu sors ravi du talk mais tu te poses la question de savoir si tu pourras faire aussi bien ( euh  je veux dire le dixième aussi bien).
Finalement arrive mon tour, tout se passe bien du moins c'est ce que j'ai ressenti.


Les slides


Pour conclure,  le plus qu'on tire à faire une conférence en vrai c'est la chance d'interagir avec d'autres participants sur  plusieurs aspects (comme la nourriture :), projets, avis sur les conférences etc...), ça donne un côté un peu plus vivant et aussi j'ai vraiment pas eu l'impression de refaire les mêmes talks d'une conférence à l'autre les sujets couvraient un spectre assez large.
Oui, il est temps d'aller bosser maintenant va falloir faire un retour sur tous ces talks :)  

lundi 20 janvier 2014

Book review : Talend Open Studio Cookbook by Rick Barton

Rick barton is a freelance consultant in data integration and ETL for the last 13 years. This book is a recipe of the lessons learned from his past project using Talend Open Studio and Talend Integration Suite. This book is for intermediate and advanced Talend users. He hasn't  started by showing  Open Studio  basics stuff but he went straight by showing tips and tricks to master Talend. He hasn't  included any quick start guide to Talend Open Studio
The book is organized as follow :
Chapter 1 : Introduction and General Principles
Chapter 2 : Metadata and Schemas 
Chapter 3 : Validating Data 
Chapter 4 : Mapping Data 
Chapter 5 : Using Java in Talend
Chapter 6 : Managing Context Variables
Chapter 7 : Working with Databases
Chapter 8 : Managing Files
Chapter 9 : Working with XML, Queues and Web Services
Chapter 10 : Debugging, Logging, and Testing
Chapter 11 : Deployment and Scheduling
Chapter 12 : Common Mistake and Other Useful Hints and Tips
Every  chapter has a sample code that shows how it works. A section called «  Getting ready » shows all the prerequisites to start to job. A section called " how to do it "   shows how to reproduce the job. The missing chapter in the book according to me is "Component creation" which should demonstrate step by step how to add or create a new component in Talend.
If you are already ok with talend basics principles and looking for a way to hone your skills in data integration using Talend tools it’s definitely a book you should go for. You can purchase a copy here http://www.packtpub.com/talend-open-studio-cookbook/book 

mardi 7 janvier 2014

Certification Talend

J’ai passé ma certification Talend pour l'intégration de données  il y’a de cela quelques jours. L’objet de ce billet est de faire un retour d’expérience sur la certification Talend et aussi de parler de mon approche des certifications en général ( Le pourquoi je passe des certifications)

Inscription 
L’achat de la certification se fait directement en ligne à l’aide d’une carte bancaire. Le coût de la certification est de 100$. Après l’achat de la certification en ligne un commercial de Talend vous envoie dans les jours qui suivent les détails de la connexion à la plateforme de test.

Durée et format de l’examen
Le test en ligne n’est pas limité dans le temps du moins vous n'aurez aucun indicateur de temps tout au long du test. Réservez au moins une heure à consacrer à l’examen. Les questions lors de l’examen sont du type QCM (Question à Choix Multiples). Pour réussir à l’examen il faut avoir un score de 80%. L’examen se passe sur une plateforme de test en ligne donc vous pouvez le passer à l’importe quel moment. J'ai choisi de passer ma certification en anglais bien qu'étant francophone parce que l'essentiel des ressources disponibles sont en anglais et des fois la traduction des termes prêtent à confusion.

Ressources et liens utiles pour se préparer
Pour préparer ma certification j'ai lu quelques blogs et livres qui m'ont beaucoup aidé :


Talend offre aussi des formations payantes qui vous préparent aussi à la certification  http://www.talend.com/services/purchase-training-products

Astuces et difficultés
En passant l'examen j'ai gardé mon Talend open studio ouvert et je vérifiais  mes quelques doutes. L'examen de façon général est accessible, si vous êtes habitués à Talend vous n' aurez aucun souci à valider cette certification. Si vous passez la certification en Afrique il faut faire attention à votre connexion internet et s'assurer d'avoir et un bon débit tout au long de l'examen. 


Le pourquoi de la certification talend et des certifications en général  

Je suis tombé sur les outils ETL par un heureux hasard et depuis j'en suis amoureux :). Aussi j'ai vu comment les projets de migrations sont bâclés en Afrique. Pour donner un exemple simple j'ai un compte dans une banque en Afrique ( une grande multi-nationale ). J'ai ouvert mon compte en 2005 et quand je consulte mon historique sur leur site web j'ai juste les données de Novembre 2012. Entretemps il y'a un changement de logiciel et pour minimiser les difficultés de migrations on décide de ne basculer que le solde à l'instant T et pas les transactions. Ce n'est pas génial comme idée, vous perdez une bonne partie de votre historique juste parce que vous changez de logiciel. Vous allez changer de logiciel chaque 5 à 10 ans :). On ne doit pas se permettre  de telle fantaisie avec les données qui constituent la mémoire de l'entreprise. Pour clore ma petite histoire une certification est une façon de montrer qu'on remplit les standards internationaux dans le domaine en question. Elle montre que vous avez passé assez de temps sur le sujet.  Il faut quand même se rendre à l'evidence que le fait de réussir une certification ne fait pas de vous un expert. Réussir à des QCM sur un sujet comme l'intégration de données est juste une validation en supposant que vous ayez fait beaucoup de pratique par le passé. Donc oui pour une certification mais il faut toujours valider ses certifications sur des projets concrets

Enfin le "happy end"

Juste pour vous dire que je suis certifié Talend pour l'intégration de données et si vous avez du boulot pour moi je suis preneur :)