Outstanding PASS Volunteer

Une surprise vendredi soir, en allant sur ma boîte mail :

J’ai été nommé « Outstanding PASS Volunteer » du mois de septembre 2014

PASS_Outstanding_Volunteer_Seal

Alors resituons un peu : le PASS (Professional Association SQL Server), qu’est-ce que c’est ?

C’est l’association qui gère tous les user group relatifs à SQL Server dans le monde. Le GUSS n’est autre que la branche locale (local chapter) du PASS

et outstanding volunteer, ça veut dire quoi ?

C’est une reconnaissance du PASS pour les bénévoles qui s’investissent énormément dans la communauté : http://www.sqlpass.org/Community/Volunteers/OutstandingVolunteers.aspx

Alors sans fausse modestie, j’avouerais que ça me fait énormément plaisir :), mais je suis malgré tout un peu gêné de recevoir un titre personnel pour une implication au sein du GUSS, car j’ai plutôt tendance à faire passer « l’institution » avant les personnes. Mais si je mérite le titre de « volontaire exceptionnel », que dire de Jean-Pierre qui a amené un souffle nouveau à la communauté SQL Server et qui porte cette communauté, depuis qu’il est revenu sur Paris.

Ce qui me rassure, c’est que cette nomination vient forcément de l’initiative du board du GUSS, et je ne peux donc que les en remercier :

Merci à Jean-Pierre, Florian, Charles-Henri, Alexandre, Arnaud, Romain, Philippe et Grégory

De même cette implication ne serait pas possible si notre communauté n’était pas aussi active :

Merci à vous, qui faites vivre cette communauté

Et comme il ne s’agit pas de s’endormir sur ses lauriers, nous sommes déjà à pied d’oeuvre sur l’organisation des Journées SQL Server 2014. Retrouvez toutes les infos (date, lieu, inscription) sur la page suivante :

http://guss.pro/2014/12/01/journees-sql-server-2014/

Tagged with: , , ,
Publié dans Communauté

SQLSaturday Paris 2014 : Slides session Pig, Hive, Sqoop…

sqlsat323_web

Le SQLSaturday Paris est maintenant terminé, merci à tous d’être venus, et aussi à ceux qui ont participé à notre session. Je vous donne le lien de nos slides :

SQLSaturday 323 Paris 2014 – HDInsight

Ainsi que les fichiers sources et les scripts Pig et Sqoop que j’ai utilisé :

Demo

Un petit retour sur les références que j’ai données :

  • 80% des données dans le monde ont été créés il y a moins de 2 ans (et c’est même 90% en réalité :p) :

https://twitter.com/Technet_France/status/509616270288101377

  • Le très bon article HDFS versus Azure Blob Storage de Denny Glee (et surtout pourquoi privilégier du Blob Storage quand on utilise HDInsight) :

http://dennyglee.com/2013/03/18/why-use-blob-storage-with-hdinsight-on-azure/

  • Le fait qu’on ne peut utiliser l’updatemode à Allowinsert dans Sqoop que sur Oracle aujourd’hui :

http://blog.cloudera.com/blog/2012/01/whats-new-in-apache-sqoop-1-4-0-incubating/ (paragraphe Mixed Update/Insert Import)

Voila, j’espère que la session vous aura plu et que vous aurez appris quelques trucs.

Tagged with: , , , ,
Publié dans Big Data, Communauté, Evénement

Coursera – Machine Learning (Université de Stanford)

Plus qu’une semaine de cours, et j’aurai terminé le cours en ligne Machine Learning de Coursera. Je résiste pas à l’idée de vous faire un petit feedback.

coursera_logo_RGB

Coursera

Alors Coursera, c’est la plateforme de cours en ligne lancée en Avril 2012 et proposant des partenariats avec plusieurs universités américaines comme Stanford ou Princeton. On retrouve également maintenant des écoles françaises comme Polytechnique, Centrale ou l’ENS. Bref plutôt le haut du panier.

Ces universités proposent des cours en ligne donc, sur des périodes de 4 à 15 semaines (j’ai vu 14 semaines, il y a peut-être plus) ouverts plusieurs fois dans l’année.

Certaines formations sont payantes, mais proposent en contrepartie un certificat vérifié (ou une assistance technique dédiée et quelques fonctionnalités supplémentaires).

 

Machine Learning

Le cours de Machine Learning est proposé par l‘université de Stanford et dispensé par Andrew Ng (un des fondateurs de Coursera). Il est gratuit et se déroule sur 10 semaines. Le travail estimé est entre 5 et 7 heures par semaine. La formation se déroule en anglais, mais est sous-titrée en plusieurs langues (pas en français malheureusement)

Chaque semaine, une liste de vidéos est mise en ligne. Chaque vidéo dure entre 5 et 15 minutes,  vous pouvez les regarder en streaming ou les télécharger. Au cours de la lecture, vous avez une question qui correspond soit à une application directe de ce que vous venez de regarder, soit à l’introduction de la suite de la vidéo.

Une fois toutes les vidéos de la semaine lues, vous pouvez répondre à un quiz de 5 questions qui sont une application assez directe du cours. A noter qu’il est noté sur 5 points et que vous avez 100 essais pour les réussir (c’est très large, dans les faits, vous devriez faire entre 1 et 5 essais si vous êtes attentifs).

Et régulièrement (il doit y avoir juste 2 ou 3 semaines où ça n’est pas le cas), vous avez un exercice de programmation sous Octave (logiciel mathématique équivalent à MatLab, très prisé des data-scientists si on croit Andrew). Il y a un système de soumission en ligne pour valider vos programmes, et un système de points à obtenir.

 

Feedback

Le cours permet d’appréhender le machine learning et de savoir de quoi on parle lorsqu’on utilise les outils (qui a parlé de Azure Machine Learning ?), mais est plutôt orienté théorie au final : on ne fait pas qu’utiliser les algorithmes, on les construit, on les teste, on les optimise. Si vous souhaitez juste découvrir ce qu’est le machine learning, je ne crois pas que ce soit la meilleure manière de faire.

Les 5 à 7 heures de travail par semaine sont plutôt un minimum qu’une moyenne : on peut les dépasser si on lutte un peu sur les exercices de programmation (ce qui est parfois le cas). Je pense qu’il faut avoir conscience que ce cours demande une certaine quantité de travail pour être suivi.

Le cours ne demande qu’un léger pré-requis en programmation dans sa description. Je crois qu’il serait opportun de rajouter un léger background en mathématiques. En effet, on manipule beaucoup d’algèbre linéaire (matrice, vecteurs, …) et un peu de statistiques. De plus assez régulièrement, Andrew choisit de donner un résultat sans s’encombrer de preuve mathématique (volontairement), mais ça peut être intéressant de comprendre comment il arrive à ces résultats.

Il y a parfois des longueurs dans les vidéos : on peut avoir l’impression que les mêmes choses se répètent alors qu’en vérité, il y a une petite différence (rajout d’une propriété dans un algorithme, choix d’une autre variable), ou l’impression que le formateur explique en 5 minutes quelque chose qu’il pourrait énoncer en 30 secondes sans nécessairement entrer dans les détails.

Mais au final, le cours est intéressant avec des exercices de programmation plutôt pertinents qui donnent des applications concrètes du machine learning (reconnaissance d’écriture, moteur de recommandation, prédiction de prix,…) et qui ne demandent qu’à être testés sur nos propres jeux de données.

Bref, je ne regrette pas du tout de l’avoir suivi, et j’en redemande car je me suis inscrit au premier cours du cursus Data Science (payant celui-ci) de l’université Johns Hopkins.

 

Tagged with: , ,
Publié dans Machine learning

SQLSaturday Paris 2014

Fraichement rentré du SQLSaturday Rheinland 2014 où nous avons été accueillis comme des rois (comptes-rendus de Florian et Jean-Pierre), il est temps de replonger dans l’organisation de l’édition parisienne.

sqlsat323_web

Elle aura donc lieu le Samedi 13 Septembre 2014 chez Supinfo à la tour Montparnasse (avouez qu’il y a pire comme lieu de conférence). Le planning est connu, et il y en a encore pour tous les goûts autour de SQL Server, avec en bonus une track spécifique pour les speakers internationaux.

Le bon plan est que, comme son nom l’indique et comme l’année dernière, ça se déroule un samedi. Donc pas de client ou de manager à prévenir :p

A noter que j’aurais plaisir à co-animer une session Big Data avec Romain Casteres, orientée usages.

 

Pré-conférences

Une petite nouveauté pour l’édition 2014 est la mise en place de pré-conférences payantes le vendredi 12 Septembre.

Payantes ?

Alors oui, pour une question logistique, ces sessions ne peuvent être gratuites, mais 95€ pour avoir une journée complète de, au choix :

  • Jean-Pierre qui vous forme à Power BI
  • Oliver et Tillmann, nos amis allemands, qui vous expliquent Data Quality Services et Master Data Services
  • Christophe et David qui retournent les backups et le stockage dans SQL Server
  • Isabelle qui mène un audit de performance

c’est vraiment pas cher, surtout quand on connait le prix de certaines formations. On a en plus, ici, aucun doute sur la qualité des speakers.

La page qui va bien pour vous avoir les infos et pour s’inscrire :

http://guss.pro/2014/09/13/preconferences-du-sqlsaturday-paris-2014/

 

Tagged with:
Publié dans Communauté, Evénement

[SSIS] Enregistrer une DLL pour un Script Task

Un petit article pour avoir l’astuce sous la main, ça m’évitera de chercher la prochaine fois.

Dans une tâche de script SSIS, si vous voulez rajouter une référence, il se peut que vous obteniez l’erreur suivante à l’exécution (malgré le fait que le build se passe bien) :

 

GAC-error

 

Il faut alors enregistrer la dll dans le Windows Global Assembly Cache (GAC).

Pour cela 2 techniques :

Soit vous avez un vrai Visual Studio (pas juste SSDT) d’installé, et vous pouvez passer la commande suivante dans une commande prompt en mode admin :

GACUTIL /i Nomdeladll

Soit vous avez juste installé la stack BI, et vous n’avez pas l’utilitaire gacutil sur votre machine. Dans ce cas-là, un bon script PowerShell :

Set-location"c:\temp"
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish= New-ObjectSystem.EnterpriseServices.Internal.Publish
$publish.GacInstall("c:\temp\MyDLL.dll")
iisreset
Je n’ai pas trouvé ses commandes tout seul, je me suis appuyé sur ces articles de blog :
Tagged with: , ,
Publié dans Integration Services

[Big Data] Formation Cloudera Data Analyst

Un petit message, histoire de montrer mon beau diplôme pour avoir suivi la formation officielle Cloudera Data Analyst : utilisez Pig, Hive et Impala avec Hadoop, dispensée par Xebia.

David_Joubert

En quelques mots, la formation est super intéressante, elle était animée par Kris Geusebroek, consultant Big Data qui travaille GoDataDriven (donc pas chez l’éditeur), ce qui permet d’avoir une vision objective avec le recul nécessaire des outils.

Les supports sont vraiment propres et les exercices bien rédigés et clairs : c’est certes ce qu’on attend d’une formation officielle, mais c’est loin d’être toujours le cas. Je pense notamment aux points suivants :

  • Pour ne pas s’ennuyer si les stagiaires n’avancent pas au même rythme, vous avez des exercices « bonus ».
  • Vous avez la possibilité de rejouer un script avant chaque exercice pour remettre votre environnement d’aplomb si vous avez un peu trop « joué ».
  • Il y a vraiment une recherche dans les exercices pour se rapprocher d’un cas réel (ils correspondent à une étude dans une entreprise virtuelle).
  • Vous pouvez continuer à pratiquer à la maison : on vous offre une clé USB contenant une machine virtuelle Linux avec Hadoop 🙂

Bref, une formation que je recommande à tout consultant qui veut se mettre à Pig ou à Hive.

Tagged with: , ,
Publié dans Big Data

[Big Data] Installation Hortonworks Data Platform (HDP) sur Windows en mode multi noeuds

Pour faire suite à mon article précédent qui présentait l’installation d’HDP en mode simple noeud, on va s’intéresser ici à l’installation en mode multi-noeuds (histoire de ne pas usurper l’appellation cluster :p)

L’idée du test est d’avoir une machine maître et 2 machines esclaves.
Pour cela, en premier lieu, on se crée un réseau dans Azure afin d’y faire communiquer nos 3 machines (On peut vraiment créer beaucoup de choses dans Azure, je n’avais jusque là pas trop pratiqué, mais je suis déjà fan de la plateforme)
Petite attention : je vous conseille de les créer sur le même service cloud histoire de faciliter la résolution de noms dans Azure :
http://msdn.microsoft.com/fr-fr/library/azure/jj156088.aspx
C’est un conseil plus que recommandé, car sur les tests que j’ai pu faire, l’installation fonctionne beaucoup mieux avec les hostnames qu’avec des IP :p

J’ai pris le même sizing que dans l’article précédent (format de base, A2, Windows Server 2012, etc)

Les noms des machines et leurs IP :
CH-MASTER : 192.168.0.4
CH-SLAVE1 : 192.168.0.5
CH-SLAVE2 : 192.168.0.6

Pré-requis

Les pré-requis restent les mêmes que sur une installation simple noeud : vous n’échapperez donc pas à l’installation de Java, Python et Visual C++ sur toutes les machines.

Les points d’attention d’une installation simple noeud restent vrais : variables d’environnements pour Java, exécutable pour Python.

Pour une machine de test et ne pas se créer de souci supplémentaire, on désactive aussi les firewall de toutes les machines, dans la vraie vie, il conviendrait de mapper les ports.

Installation HDP

On peut ensuite passer à l’installation d’HDP.

Pour cela, on a besoin du fichier clusterproperties.txt suivant :

#Log directory
HDP_LOG_DIR=c:\hadoop\logs#Data directory
HDP_DATA_DIR=c:\hdpdata#hosts
NAMENODE_HOST=CH-MASTER
SECONDARY_NAMENODE_HOST=CH-MASTER
RESOURCEMANAGER_HOST=CH-MASTER
HIVE_SERVER_HOST=CH-MASTER
OOZIE_SERVER_HOST=CH-MASTER
WEBHCAT_HOST=CH-MASTER
SLAVE_HOSTS=CH-SLAVE1,CH-SLAVE2
ZOOKEEPER_HOSTS=CH-MASTER
CLIENT_HOSTS=CH-MASTER#Database host
DB_FLAVOR=DERBY
DB_HOSTNAME=CH-MASTER
DB_PORT=1527

#Hive properties
HIVE_DB_NAME=hive_db
HIVE_DB_USERNAME=hive
HIVE_DB_PASSWORD=hive

#Oozie properties
OOZIE_DB_NAME=oozie_db
OOZIE_DB_USERNAME=oozie
OOZIE_DB_PASSWORD=oozie

On exécute ensuite la commande suivante :

msiexec /qn /i  « hdp-2.1.1.0.winpkg.msi » /lv « log.txt » HDP_USER_PASSWORD= »Password01″ HDP_LAYOUT= »C:\HDP_INSTALL\clusterproperties.txt » HDP_DIR= »C:\HDP » DESTROY_DATA=yes HDP=no

Attention le /qn qui permet de passer outre l’interface graphique est obligatoire, sinon votre fichier clusterproperties ne sera pas utilisé. Et je n’ai pas réussi à passer de la configuration multi-noeuds avec cette interface.
L’autre point gênant, c’est que cette commande rend la main dès son exécution : on ne sait donc pas où en est l’avancement de l’installation à moins de fouiller dans les logs (qui ne sont pas toujours explicites)
L’installation est finie lorsque sur le bureau, vous avez un raccourci vers les 3 pages web de suivi du cluster et un raccourci vers une invite de commande hadoop.

Cette commande est à exécuter sur les 3 machines avec le même fichier de configuration.

Il ne reste plus qu’à lancer les services par la commande suivante sur les 3 machines :

C:\HDP>start_local_hdp_services.cmd

Sur un noeud esclave
Sur le noeud maitre

A noter qu’il existe une commande start_remote_hdp_services.cmd à exécuter sur le noeud maitre pour lancer les services sur les noeuds esclaves. Mais je ne suis pas parvenu à la faire fonctionner. J’ai différentes pistes :
– la première est qu’elle ne fonctionnait pas sur d’anciennes versions d’HDP et je ne sais pas si cela a été corrigé (http://hortonworks.com/community/forums/topic/cant-start-on-windows/)
– la deuxième serait sur un problème d’exécution de powershell à distance (http://hortonworks.com/community/forums/topic/install-ok-but-trouble-validating/). Je n’ai pas eu beaucoup de succès dans mes essais de configuration à ce sujet, et je n’ai pas eu le courage d’installer un contrôleur de domaine pour aller plus loin.

Toujours est-il que le cluster est fonctionnel :

Il ne vous reste qu’à lancer un Run-SmokeTests.cmd pour vérifier que tout marche bien :

Publié dans Big Data