IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Big data et c#


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut Big data et c#
    Bonjour,

    Je dois faire un prototype utilisant c# et une solution de big data.
    Qq un a t il de l’expérience la dedans ? J'essaye de me documenter sur Hadoop mais ne trouve pas grand chose sur c#/Haddop (sans windows azure).

    Merci pour vos conseils.

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Par défaut
    Bonjour topolino,

    Tu peux utiliser la bibliothèque Hadoop Streaming qui fait partie de Hadoop. Elle écoute la sortie standard, donc tu procèdes avec un Console.WriteLine() dans ta méthode map() et avec un Console.ReadLine() dans ta méthode reduce().
    Je le présente en fin d'article ici http://blogs.msdn.com/b/big_data_fra...de-partie.aspx

    Il faut savoir cependant que tu perds beaucoup en performance en utilisant ce genre de bibliothèque même si cette bricole permet de faire un programme MapReduce sur Hadoop avec n'importe quel langage.

    L'équipe Microsoft en charge de HDInsight (hadoop sur Azure donc, mais ça marche pour n'importe quelle installation de Hadoop) ont développé des bibliothèques accessibles sous forme de paquet NuGet :

    .NET Map/Reduce : c'est un « wrapper » .NET de la bibliothèque Java Hadoop Streaming pour écrire un programme mapreduce. C'est celle-ci que tu dois utiliser si tu veux écrire en c# (elle utilise la sortie standard).

    LINQ to Hive : LINQ to Hive permet d’utiliser des requêtes LINQ sur des données gérées par Hive.

    WebHDFS Client : WebHDFS Client est une abstraction .NET du système de fichiers HDFS d’Hadoop. Il permet de créer, de lire, ou de supprimer des fichiers contenu sur ton cluster Hadoop programmatiquement parlant. Il utilise pour cela le service REST WebHDFS du cluster Hadoop (n'est pas activé de base).

    Voila, généralement tu peux suivre les tutos qui sont fait pour des conf Hadoop avec Azure car les fonctionnalités sont les mêmes que si tu utilises une installation autre (c'est toujours Hadoop). Il faut juste faire attention à la version (sur Azure c'est Hadoop 1.0.3).

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Merci pour ta reponse claire.

    J'ai essayé de jouer avec HDInsight et les temps de reponse avec un simple select sont tres tres tres longue !!!!

    La meme requete avec SQL server prend entre 1 à 2 s, avec HDInsight cela prend 45 s. Je suis sur une VM, elle cela provoquerait ce tps de reponse incensé ?

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Par défaut
    Citation Envoyé par topolino
    Merci pour ta reponse claire.

    J'ai essayé de jouer avec HDInsight et les temps de reponse avec un simple select sont tres tres tres longue !!!!

    La même requête avec SQL server prend entre 1 à 2 s, avec HDInsight cela prend 45 s. Je suis sur une VM, cela provoquerait ce tps de reponse incensé ?

    Merci pour tes conseils
    Tu as testé HDInsight en l'installant avec WebPI? En soit, Hadoop n'est pas très performant pour faire ce genre de choses, il n'est pas voué à remplacer ton SGBD SQL qui sera beaucoup, beaucoup plus rapide sur un petit nombre de données (l'ordre de grandeur est le Go). Lorsque tu as plus, c'est à dire du Téra voir du Péta, Hadoop est très performant du fait de son architecture distribuée (c'est pour cela que la version HDInsight installé sur une seule machine n'existe que pour des cas de tests et debug).
    Hadoop procède ainsi :
    1-Il distribue tes données sur les différentes machines que tu as.
    2-Ensuite il prend ton code mapreduce et l'envoie à chaque machine. Chacune de tes machines l'exécute sur ses données internes, puis le renvoie au process principale qui regroupe tous les résultats.
    Maintenant lorsque tu fais du SQL avec HDInsight, ça passe par une surcouche de Hadoop qui s'appelle Hive. Et quand tu fournies une requête SQL à Hive, il la transforme en traitement mapreduce (même pour un simple "SELECT"). Mapreduce n'est pas du tout adapté pour ce genre de requête, il l'est plus pour faire un traitement. Certains Frameworks, basés sur Hadoop, essaient de palier à ce problème. Cloudera développe Impala par exemple, il y a HBase aussi qui est une base données utilisant le stockage distribué de Hadoop (HDFS), sans passer par un traitement mapreduce. Mais de mon point de vu ce n'est pas convaincant, et même Hadoop n'est pas conçu pour être un SGBD. Si tu as le temps, jette un oeil sur cette vidéo, très intéressante, sur "noSql, map/reduce, bases relationnelles: quoi utiliser quand ?" : http://msdn.microsoft.com/fr-fr/jj200255

    Ces trois aspects expliquent en partie la lenteur que tu as lorsque tu utilises HDInsight-onebox. Ce qu'il faut voir c'est que Hadoop n'est pas le remplaçant de nos SGBD SQL, il est conçu pour du traitement massivement parallèle (donc sur un cluster, avec plusieurs machines de traitement), sur des données de très très grande ampleur. Sur un fichier de texte, tu es mieux d'utiliser une requête LINQ en C#, à la paralléliser avec TPL, ça sera plus rapide.

Discussions similaires

  1. Talend Open Studio for Big Data va passer sous licence Apache
    Par Gordon Fowler dans le forum Talend
    Réponses: 6
    Dernier message: 25/11/2013, 20h33
  2. Réponses: 3
    Dernier message: 13/01/2012, 19h45
  3. [Serveurs] [BIG DATA] sas/access to mongoDB
    Par wise2 dans le forum Administration et Installation
    Réponses: 1
    Dernier message: 06/12/2011, 16h05
  4. Réponses: 1
    Dernier message: 28/10/2011, 14h38
  5. Réponses: 0
    Dernier message: 17/10/2011, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo