Quand utiliser Hadoop, HBase, Hive et Pig?

Quels sont les avantages d'utiliser soit Hadoop ou HBase ou Hive ?

d'après ce que j'ai compris, HBase évite l'utilisation de map-reduce et dispose d'un stockage en colonne au-dessus de HDFS. Hive est une interface de type sql pour Hadoop et HBase .

je voudrais aussi savoir comment Ruche se compare avec Cochon .

168
demandé sur fxm 2012-12-17 13:33:35

15 réponses

MapReduce est juste un cadre informatique . HBase n'a rien à voir avec ça. Cela dit, Vous pouvez efficacement mettre ou récupérer des données à/de HBase en écrivant MapReduce jobs. Vous pouvez aussi écrire des programmes séquentiels en utilisant D'autres API HBase, comme Java, pour mettre ou récupérer les données. Mais nous utilisons Hadoop, HBase etc pour traiter des quantités gigantesques de données, de sorte que cela n'a pas beaucoup de sens. Utiliser des programmes séquentiels normaux serait très inefficace lorsque vos données sont trop énorme.

pour revenir à la première partie de votre question, Hadoop est essentiellement 2 choses: un système de fichiers distribué (HDFS) + un cadre de calcul ou de traitement (MapReduce) . Comme tous les autres FS, HDFS fournit également le stockage us, mais d'une manière tolérant les défauts avec un débit élevé et un risque plus faible de perte de données (en raison de la réplication). Mais, étant un FS, HDFS manque accès aléatoire de lecture et d'écriture . C'est ici que HBase entre en scène. C'est un distribué, évolutif, Big data store , modelé d'après le BigTable de Google. Il stocke les données comme des paires clé/valeur.

en route pour la ruche. Il fournit des données us entrepôt installations au-dessus d'un cluster Hadoop existant. En outre, il fournit une interface SQL comme qui rend votre travail plus facile, dans le cas où vous venez d'un fond SQL. Vous pouvez créer les tables dans la ruche et stocker des données là. Avec cela, vous pouvez même cartographier vos tables HBase existantes pour les rucher et opérer sur eux.

alors que Pig est essentiellement un langage dataflow qui nous permet de traiter d'énormes quantités de données très facilement et rapidement. Le cochon a essentiellement 2 parties: le cochon interprète et la langue, PigLatin . Vous écrivez le script de cochon dans la Piglatine et en utilisant l'interpréteur de Cochon les traiter. Le cochon rend notre vie beaucoup plus facile, sinon écrire MapReduce n'est pas toujours facile. En fait, dans certains cas, il peut vraiment être une douleur.

j'avais écrit un article sur une courte comparaison des différents outils de L'écosystème Hadoop Il ya quelque temps. Ce n'est pas une comparaison en profondeur, mais une brève introduction à chacun de ces outils qui peut vous aider à commencer. (Juste pour ajouter à ma réponse. Pas d'auto-promotion prévue)

Les requêtes Hive et Pig sont converties en travaux MapReduce sous le capot.

HTH

324
répondu Tariq 2016-01-12 15:45:08

j'ai récemment mis en place une plate-forme de données Hive dans mon entreprise et je peux lui parler à la première personne depuis que j'étais une équipe d'un seul homme.

objectif

  1. pour avoir les fichiers journaliers de log web recueillis à partir de 350 + serveurs Queryable quotidienne à travers certains SQL comme langue
  2. pour remplacer les données d'agrégation quotidiennes générées par MySQL par "Hive
  3. Construire Sur Mesure rapports à travers requêtes dans Ruche

Options D'Architecture

j'ai comparé les options suivantes:

  1. Ruche+HDFS
  2. Hive+HBase - les requêtes étant trop lentes, j'ai abandonné cette option

Design

Les fichiers journaliers
  1. ont été transportés à HDFS
  2. M. jobs a analysé ces fichiers journaux et fichiers de sortie dans HDFS
  3. créer des tables de ruche avec des partitions et des emplacements pointant vers HDFS emplacements
  4. créer des scripts de requête de Ruche (l'appeler HQL si vous aimez comme diff de SQL ) qui à son tour a couru Mr jobs Dans l'arrière-plan et a généré des données d'agrégation
  5. Mettre toutes ces étapes dans un Oozie flux de travail est prévue avec le Quotidien Oozie Coordinateur

résumé

HBase est comme une carte. Si vous connaissez la clé, vous pouvez obtenir instantanément la valeur. Mais si vous voulez savoir combien de touches entières dans Hbase sont entre 1000000 et 2000000 qui ne convient pas pour Hbase seul.

si vous avez des données à agréger, à regrouper, à analyser à travers les lignes, alors considérez Ruche .

espérons que ça aide.

Hive en fait rocks really well...Je sais, je le vis depuis 12 mois maintenant... Tout comme HBase ...

46
répondu Sanjay Subramanian 2018-01-11 00:56:25

considérez que vous travaillez avec des RDBM et que vous devez choisir ce qu'il faut utiliser - des balayages complets de table, ou l'accès index - mais un seul d'entre eux.

Si vous sélectionnez exploration complète de la table - utilisez la ruche. Si l'indice d'accès HBase.

21
répondu David Gruzman 2012-12-17 20:47:26

Hadoop est un cadre qui permet le traitement distribué de grands ensembles de données à travers des grappes d'ordinateurs en utilisant des modèles de programmation simples.

il y a quatre modules principaux à Hadoop.

  1. Hadoop Common : les utilitaires communs qui supportent les autres modules Hadoop.

  2. Hadoop Système de fichiers distribués ( HDFS™ ): un système de fichiers distribués qui fournit un accès à haut débit aux données de l'application.

  3. Hadoop FIL : UN cadre pour la planification de tâches et de ressources de cluster de gestion.

  4. Hadoop MapReduce : un système à base de fils pour le traitement parallèle de grands ensembles de données.

avant d'aller plus loin, notons que nous avons trois types différents de données.

  • structuré : données structurées a un schéma fort et le schéma sera vérifié pendant l'opération d'écriture et de lecture. par exemple, Données dans les systèmes RDBMS comme Oracle, MySQL Server, etc.

  • non structuré : les données n'ont aucune structure et il peut être n'importe quelle forme - Journaux du serveur Web, e-Mail, Images etc.

  • Semi-structuré : les données ne sont pas strictement structurées mais ont une certaine structure. par exemple, les fichiers XML.

Selon le type de données à traiter, nous devons choisir la bonne technologie.

quelques autres projets, qui font partie de Hadoop:

  • HBase™ : une base de données évolutive et distribuée qui prend en charge le stockage structuré de données pour les grandes tables.

  • Hive ™: une infrastructure d'entrepôt de données qui fournit un résumé de données et une interrogation ad hoc.

  • Pig™ : un langage de flux de données de haut niveau et un cadre d'exécution pour le calcul parallèle.

Ruche Vs cochon la comparaison peut être trouvée à cet article et mon autre poste à ce se question .

HBASE "151930920 n'est pas de remplacer la Carte de Réduire. HBase est extensible à la base de données distribuée et Carte de Réduire est un modèle de programmation pour le traitement distribué des données. Map Reduce peut agir sur les données dans HBASE dans le traitement.

vous pouvez utiliser HIVE / HBASE pour des données structurées/semi-structurées et le traiter avec Hadoop Map Reduce

Vous pouvez utiliser SQOOP pour importer des données structurées à partir de traditionnelle base de données SGBDR Oracle, SQL Server, etc et de les traiter avec Hadoop Map Reduce

vous pouvez utiliser canal pour le traitement des données non structurées et le processus avec Hadoop Carte réduire

Avoir un regard sur: Hadoop Cas d'Utilisation .

Hive doit être utilisé pour l'interrogation analytique des données recueillies sur une période de temps. E. G calculer les tendances, résumer les journaux du site Web, mais il ne peut pas être utilisé pour les requêtes en temps réel.

HBase correspond à une interrogation en temps réel de données massives. Facebook l'utilise pour la messagerie et l'analyse en temps réel.

Le PIG peut être utilisé pour construire des dataflows, exécuter des travaux programmés, crunch de grands volumes de données, agréger/résumer et stocker dans des systèmes de base de données relation. Bon pour une analyse ad hoc.

Hive peut être utilisé pour l'analyse de données ad hoc, mais il ne peut pas prendre en charge tous les formats de données non structurés contrairement à PIG.

21
répondu Ravindra babu 2017-05-23 12:34:41

Pour une Comparaison Entre Hadoop Vs Cassandra/HBase lire cette post .

essentiellement HBase permet une lecture et une écriture très rapide avec évolutivité. Comment rapide et évolutive? Facebook l'utilise pour gérer ses statuts d'utilisateur, photos, messages de chat, etc. HBase est si rapide que parfois des piles ont été développées par Facebook pour utiliser HBase comme stockage de données pour la ruche elle-même.

où comme Ruche est plus comme un Solution d'Entreposage de données. Vous pouvez utiliser une syntaxe similaire à SQL pour interroger le contenu de la ruche, ce qui donne un travail de réduction de Map. Pas idéal pour les systèmes transactionnels rapides.

5
répondu shazin 2012-12-17 10:27:32

j'ai travaillé sur Lambda architecture traitement en temps réel et les charges par lots. Le traitement en temps réel est nécessaire lorsque des décisions rapides doivent être prises en cas d'alarme D'incendie envoyée par capteur ou la détection de fraude en cas de transactions bancaires. Le traitement par lots est nécessaire pour résumer les données qui peuvent être introduites dans les systèmes BI.

nous avons utilisé la Hadoop de l'écosystème des technologies pour les applications ci-dessus.

Traitement En Temps Réel

Apache Storm: le Flux de traitement de Données, l'application de la Règle

HBase: banque de données pour servir de tableau de bord en temps réel

Traitement Par Lots Hadoop: Crunching énorme morceau de données. 360 degrés aperçu ou ajout de contexte aux événements. Des Interfaces ou des cadres comme Pig, MR, Spark, Hive, Shark aident à l'informatique. Cette couche a besoin de scheduler pour lequel Oozie est une bonne option.

la gestion des Événements de la couche

Apache Kafka a été la première couche à consommer des événements à grande vitesse à partir du capteur. Kafka permet à la fois le flux de données d'analyse en temps réel et le flux de données D'analyse par lots à travers les connecteurs Linkedin.

5
répondu akshat thakar 2015-01-16 07:31:43

comprendre en profondeur

Hadoop

Hadoop est un projet open source de la fondation Apache . Il s'agit d'un cadre écrit dans Java , développé à L'origine par Doug Cutting en 2005. Il a été créé pour supporter la distribution de Nutch , le moteur de recherche de texte. Hadoop utilise Map Reduce de Google et les Technologies de système de fichiers Google comme son Fondation.

caractéristiques de Hadoop

  1. il est optimisé pour traiter des quantités massives de données structurées, semi-structurées et non structurées à l'aide de matériel de base.
  2. Il a partagé le rien de l'architecture.
  3. il reproduit ses données dans plusieurs ordinateurs de sorte que si l'un descend, les données peuvent encore être traitées à partir d'une autre machine qui stocke son réplique.
  4. Hadoop est pour un débit élevé, plutôt que d'une faible latence. Il s'agit d'une opération par lots qui traite des quantités massives de données; par conséquent, le temps de réponse n'est pas immédiat.
  5. il complète le traitement des transactions en ligne et le traitement analytique en ligne. Toutefois, il ne remplace pas un RDBMS .
  6. ce n'est pas bon quand le travail ne peut pas être parallélisé ou quand il y a des dépendances dans les données.
  7. il n'est pas bon pour le traitement de petits fichiers. Il fonctionne le mieux avec des fichiers de données énormes et des ensembles de données.

Versions de Hadoop

il existe deux versions de Hadoop disponibles:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

It a deux parties principales :

1. Cadre De Stockage De Données

il s'agit d'un système de fichiers universel appelé Hadoop Distributed File System ( HDFS ).

HDFS est un schéma de moins en moins

il stocke simplement des fichiers de données et ces fichiers de données peuvent être dans à peu près n'importe quel format.

l'idée est de stocker des fichiers aussi proches que possible de leur forme originale.

cela procure aux unités opérationnelles et à l'organisation la souplesse et la souplesse dont elles ont tant besoin sans trop se préoccuper de ce qu'elles peuvent mettre en œuvre.

2. Cadre Informatique

il s'agit d'un modèle de programmation fonctionnelle simple initialement popularisé par Google comme MapReduce .

il utilise essentiellement deux fonctions: MAP et REDUCE pour traiter les données.

les "Mappers" prennent un ensemble de paires de valeurs clés et génèrent des données intermédiaires (qui sont une autre liste de paires de valeurs clés).

les "réducteurs" agissent alors sur cette entrée pour produire les données de sortie.

les deux fonctions semblent fonctionner isolément l'une de l'autre, ce qui permet au traitement d'être hautement distribué de manière hautement parallèle, à la tolérance aux défauts et évolutive.

Limitations de Hadoop 1.0

  1. la première limite était l'exigence d'expertise en programmation MapReduce .

  2. Il uniquement pris en charge le traitement par lot qui, certes, est approprié pour des tâches telles que l'analyse des journaux, à grande échelle de projets d'exploration de données, mais assez bien impropre à d'autres types de projets.

  3. l'Un des principaux la limitation était que Hadoop 1.0 était étroitement computationnellement couplé avec MapReduce , ce qui signifie que les vendeurs de gestion de données établis ont été laissés avec deux opinions:

    1. soit réécrire leur fonctionnalité dans MapReduce de sorte qu'il pourrait être exécutée en Hadoop ou

      1519930920"
    2. extraire des données de HDFS ou les traiter en dehors de Hadoop .

aucune de ces options n'était viable, car elle entraînait des inefficacités de traitement causées par le déplacement des données à l'intérieur et à l'extérieur de la grappe Hadoop .

Hadoop 2.0

dans Hadoop 2.0 , HDFS continue d'être le cadre de stockage de données.

Cependant, un nouveau et distinct cadre de gestion des ressources appelé Y et Un autre R ressource N egotiater ( FIL ) a été ajoutée.

toute application capable de se diviser en tâches parallèles est supportée par le fil.

YARN coordonne l'attribution des sous-tâches de la demande soumise, ce qui améliore encore la flexibilité, l'évolutivité et l'efficacité des applications.

It fonctionne en ayant un Application Master à la place de Job Tracker , en exécutant des applications sur les ressources régies par le nouveau Node Manager .

ApplicationMaster est capable d'exécuter n'importe quelle application et pas seulement MapReduce .

cela signifie qu'il ne prend pas seulement en charge le traitement par lots, mais aussi le traitement en temps réel. MapReduce n'est plus la seule option de traitement des données.

avantages de Hadoop

il stocke des données dans son natif de. Aucune structure n'est imposée lors de la saisie ou du stockage des données. HDFS est le schéma de moins en moins. C'est seulement plus tard, lorsque les données doivent être traitées que la structure n'est imposée sur les données brutes.

Elle est évolutive. Hadoop peut stocker et distribuer de très grands ensembles de données à travers des centaines de serveurs bon marché qui opèrent dans parallèle.

il résiste à la défaillance. Hadoop est la tolérance aux pannes. Il pratique la réplication des données avec diligence, ce qui signifie que chaque fois que des données sont envoyées à un noeud, les mêmes données sont également répliquées à d'autres noeuds dans le cluster, assurant ainsi qu'en cas de défaillance du noeud,il y aura toujours une autre copie des données disponibles pour l'utilisation.

il est flexible. L'un des principaux avantages de la Hadoop est qu'il peut fonctionner avec tout type de données: structuré, non structuré ou semi-structuré. En outre, le traitement est extrêmement rapide dans Hadoop en raison du paradigme "déplacer le code aux données".

De L'Écosystème Hadoop

composants de Hadoop écosystème:

SF : Hadoop Système de Fichiers Distribués. Il stocke simplement les fichiers de données aussi près que possible de la forme originale.

HBase : c'est la base de données de Hadoop et se compare bien avec un RDBMS . Il prend en charge le stockage structuré de données pour les grandes tables.

Hive : il permet l'analyse de grands ensembles de données en utilisant une langue très similaire à la norme ANSI SQL , ce qui implique que toute personne familiarisée avec SQL devrait être en mesure d'accéder aux données sur un Hadoop cluster.

porc : C'est un langage de flux de données facile à comprendre. Il aide à l'analyse de grands ensembles de données qui est tout à fait l'ordre avec Hadoop . Les scripts Pig sont automatiquement convertis en MapReduce par l'interpréteur Pig .

ZooKeeper : il s'agit d'un service de coordination pour les applications distribuées.

Oozie : c'est un workflow schedular système pour gérer Apache Hadoop emplois.

Mahout : il s'agit d'une bibliothèque évolutive d'apprentissage et d'exploration de données.

Chukwa : il s'agit d'un système de collecte de données pour la gestion de grands systèmes distribués.

Sqoop : il est utilisé pour transférer des données en vrac entre Hadoop et des magasins de données structurés tels que des bases de données relationnelles.

Ambari : il s'agit d'un outil en ligne pour l'approvisionnement, la gestion et le suivi des clusters Hadoop .

Ruche

Hive est un outil d'infrastructure de stockage de données pour traiter des données structurées dans Hadoop . Il se trouve en haut de Hadoop pour résumer les Big Data et rend la recherche et l'analyse facile.

la Ruche n'est pas

  1. Une base de données relationnelle

  2. Un dessin pour le Traitement des Transactions en Ligne ( OLTP ).

  3. un langage pour les requêtes en temps réel et les mises à jour au niveau des lignes.

caractéristiques de la ruche

  1. HDFS .

  2. il est conçu pour OLAP .

  3. Ça donne SQL type de langage d'interrogation appelé HiveQL ou HQL .

  4. Il est familier, rapide, évolutif et extensible.

La Ruche "Architecture De 1519790920"

le les composants suivants sont contenus dans L'Architecture de la ruche:

  1. interface utilisateur : Hive est une infrastructure data warehouse qui peut créer une interaction entre l'utilisateur et HDFS . Les Interfaces utilisateurs que Hive prend en charge sont L'interface utilisateur web Hive, la ligne de commande Hive et Hive HD Insight(dans Windows Server).

  2. MetaStore : Hive choisit respectivement database servers pour stocker le schéma ou Metadata de tableaux, bases de données, colonnes dans un tableau, leurs types de données et HDFS cartographie.

  3. HiveQL Process Engine : HiveQL est similaire à SQL pour des questions sur le schéma d'information sur le Metastore . Il est l'un des remplacements de l'approche traditionnelle pour MapReduce du programme. Au lieu d'écrire MapReduce dans Java , nous pouvons écrire une requête pour MapReduce et de la traiter.

  4. moteur D'émission : la partie conjuguée du HiveQL moteur de traitement et du MapReduce est le Hive moteur D'exécution. Le moteur d'exécution traite la requête et génère les mêmes résultats que MapReduce results . Il utilise la saveur de MapReduce .

  5. HDFS ou HBase : Hadoop système de fichiers distribués ou HBase sont les techniques de stockage de données pour stocker des données dans le système de fichiers.

3
répondu Pankti 2017-12-01 06:27:33

tout d'abord, nous devrions obtenir clair que Hadoop a été créé comme une alternative plus rapide à RDBMS . Traiter une grande quantité de données à un rythme très rapide qui auparavant prenait beaucoup de temps dans les SGBDR.

maintenant il faut connaître les deux termes:

  1. données structurées : ce sont les données que nous avons utilisées dans les RDBM traditionnels et est divisé en bien défini structure.

  2. données non structurées : ceci est important pour comprendre, environ 80% des données mondiales sont non structurées ou semi-structurées. Ce sont les données qui sont sur sa forme brute et ne peuvent pas être traitées à L'aide de RDMS. Exemple: facebook, données twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

ainsi, une grande quantité de données a été générée au cours des dernières années et les données ont été la plupart du temps non structuré, qui a donné naissance à HADOOP. Il a été utilisé principalement pour une très grande quantité de données qui prennent un temps irréalisable à utiliser les SGBDR. Il avait de nombreux inconvénients, qu'il ne pouvait pas être utilisé pour des données relativement petites en temps réel, mais ils ont réussi à supprimer ses inconvénients dans la nouvelle version.

Avant d'aller plus loin, je voudrais dites qu'un nouvel outil Big Data est créé lorsqu'ils voient un défaut sur les outils précédents. Ainsi, selon l'outil, vous verrez qui est créé a été fait pour surmonter le problème de ces outils.

Hadoop peut être simplement dit comme deux choses: Mapreduce et HDFS . Mapreduce est l'endroit où le traitement a lieu et HDFS est la base de données où les données sont stockées. Cette structure a suivi WORM principal, c.-à-d. écrire une fois lu plusieurs fois. Donc, une fois que nous avons stocké des données dans HDFS, nous ne pouvons pas faire de changements. Cela a conduit à la création de HBASE , un produit NOSQL où nous pouvons faire des changements dans les données aussi après l'avoir écrit une fois.

mais avec le temps nous avons vu que Hadoop avait beaucoup de défauts et pour cela nous avons créé un environnement différent sur la structure Hadoop. Le porc et la ruche sont deux exemples populaires.

HIVE a été créé pour les gens avec SQL arrière-plan. Les requêtes écrites sont similaires à SQL nommé comme HIVEQL . HIVE a été développé pour traiter complètement données structurées . Il n'est pas utilisé pour les données ustructurées.

PIG d'autre part a son propre langage d'interrogation i.e. Pig LATIN . Il peut être utilisé pour les deux structuré ainsi que données non structurées .

en se déplaçant à la différence comme quand utiliser la ruche et quand utiliser le cochon, Je ne pense pas que quelqu'un d'autre que l'architecte de cochon pourrait dire. Suivez le lien : https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html

1
répondu 2015-07-26 13:45:04

je suis débutant à Hadoop, actuellement je travaille sur un projet avec Hadoop et le latin Cochon. avec un peu d'expérience que j'ai je peux commenter sur le porc vs Ruche.

Voici la comparaison:

  • le latin Pig est procédural, où la ruche est déclarative.
  • Pig Latin permet aux développeurs de pipelines de décider où les données de point de contrôle dans le pipeline.
  • Pig Latin permet au développeur pour sélectionner opérateur spécifique implémentations directement plutôt que de compter sur l'optimiseur.
  • le latin Pig supporte les divisions dans le pipeline.
  • Pig Latin permet aux développeurs d'insérer leur propre code presque n'importe où dans le pipeline de données.
0
répondu Manu 2015-01-20 08:57:58

laissez-moi essayer de répondre en quelques mots.

Hadoop est un éco-système qui comprend tous les autres outils. Donc, vous ne pouvez pas comparer Hadoop mais vous pouvez comparer MapReduce.

Voici mes quelques cents:

  1. Ruche: si votre besoin est très SQLish Signification de votre énoncé de problème peut être traité par SQL, alors la chose la plus facile à faire serait d'utiliser la ruche. L'autre cas, où vous utiliseriez la ruche est quand vous voulez qu'un serveur ait une certaine structure de données.
  2. Pig: si vous êtes à l'aise avec le latin Pig et vous avez besoin est plus des pipelines de données. De plus, vos données manquent de structure. Dans ces cas - là, tu pourrais utiliser du porc. Honnêtement, il n'y a pas beaucoup de différence entre ruche et Cochon en ce qui concerne les cas d'utilisation.
  3. MapReduce: si votre problème ne peut pas être résolu en utilisant SQL straight, vous devez d'abord essayer de créer UDF pour Hive & Pig et puis si L'UDF ne résout pas le problème alors obtenir par MapReduce fait du sens.
0
répondu Sandeep Giri 2016-05-31 06:48:41

cochon: il est préférable de traiter les fichiers et les données de nettoyage exemple: suppression des valeurs nulles, manipulation des chaînes, valeurs inutiles Ruche: pour interroger sur des données nettoyées

0
répondu y durga prasad 2017-07-10 09:07:02

1.Nous utilisons Hadoop pour stocker de grandes données(I. E. structure, Unstructure and Semistructure data) dans le format de fichier form comme txt,csv.

2.Si nous voulons des mises à jour chronologiques dans nos données, alors nous utilisons L'outil Hbase

3.Dans le cas de Hive, nous stockons des données massives qui sont dans un format structuré et en plus de cela, nous fournissons une analyse de ces données.

4.Pig est un outil qui utilise le latin Pig pour analyser les données dans n'importe quel format(structure,semistructure et unstructure).

0
répondu swaroop 2017-12-07 06:23:43

4 RAISONS D'UTILISER HADOOP POUR LA SCIENCE DES DONNÉES: - - -

au cours des 10 dernières années environ, de grandes entreprises web comme Google, Yahoo!, Amazon et Facebook ont appliqué avec succès des algorithmes d'apprentissage machine à grande échelle sur des ensembles de données volumineuses, créant des produits de données innovants tels que des systèmes de publicité en ligne et des moteurs de recommandation.

Apache Hadoop devient rapidement un magasin central pour le big data dans l'entreprise, et est donc une plate-forme naturelle avec laquelle l'entreprise peut maintenant appliquer la science des données à une variété de problèmes commerciaux tels que la recommandation de produit, la détection de fraude, et l'analyse du sentiment.

en S'appuyant sur les modèles de raffiner, Explorer, enrichir que nous avons décrit dans notre Hadoop Patterns of Use whitepaper, nous allons examiner certaines des principales raisons d'utiliser Hadoop pour la science des données qui sont également saisies dans la présentation suivante:

[slideshare id=18622467&doc=whyhadoopfordatascience-130411110136-phpapp02]

RAISON 1: EXPLORATION DE DONNÉES AVEC ENSEMBLES COMPLETS DE DONNÉES Les données scientifiques de l'amour de leur environnement de travail. Qu'ils utilisent R, SAS, Matlab ou Python, ils ont toujours besoin d'un ordinateur portable avec beaucoup de mémoire pour analyser les données et construire des modèles. Dans le monde du big data, la mémoire Portable n'est jamais assez, et parfois même pas proche.

une approche commune est d'utiliser un échantillon de la grande ensemble de données, un grand un échantillon qui peut s'adapter à la mémoire. Avec Hadoop, vous pouvez maintenant exécuter de nombreuses tâches d'analyse exploratoire des données sur des ensembles complets de données, sans échantillonnage. Il suffit d'écrire une carte-réduire le travail, porc ou ruche script, le lancer directement sur Hadoop sur l'ensemble complet de données, et obtenir les résultats directement à votre ordinateur portable.

RAISON 2: EXTRACTION D'ENSEMBLES DE DONNÉES PLUS IMPORTANTS Dans de nombreux cas, les algorithmes d'apprentissage automatique donnent de meilleurs résultats lorsqu'ils disposent de plus de données pour tirer des leçons de l'expérience., en particulier pour les techniques telles que le groupage, la détection des valeurs aberrantes et les produits recommandés.

historiquement, les grands ensembles de données n'étaient pas disponibles ou trop coûteux à acquérir et à stocker, de sorte que les praticiens de l'apprentissage automatique ont dû trouver des moyens novateurs d'améliorer les modèles avec des ensembles de données plutôt limités. Avec Hadoop comme une plate-forme qui fournit un stockage et une puissance de traitement à échelle linéaire, vous pouvez maintenant stocker toutes les données au format brut, et utiliser l'ensemble complet de données pour construire mieux, des modèles plus précis.

RAISON 3: PRÉTRAITEMENT À GRANDE ÉCHELLE DE DONNÉES BRUTES Comme de nombreux scientifiques spécialisés en données vous le diront, 80% du travail en science des données porte généralement sur l'acquisition, la transformation, le nettoyage et l'extraction de caractéristiques des données. Cette étape de" prétraitement " transforme les données brutes en un format consommable par l'algorithme d'apprentissage automatique, généralement sous la forme d'une matrice de caractéristiques.

Hadoop est une plate-forme idéale pour la mise en œuvre ce type de pré-traitement de manière efficace et répartie sur de grands ensembles de données, en utilisant map-reduce ou des outils comme PIG, HIVE, et des langages de script comme Python. Par exemple, si votre application implique le traitement de texte, il est souvent nécessaire de représenter les données en format Word-vector à L'aide de TFIDF, ce qui implique de compter les fréquences de mots sur un grand corpus de documents, idéal pour un travail de réduction de carte par lots.

de même, si votre application nécessite de joindre de grandes tables avec des milliards de lignes pour créer des vecteurs de fonctionnalités pour chaque objet de données, ruche ou cochon sont très utiles et efficaces pour cette tâche.

RAISON 4: AGILITÉ DES DONNÉES Il est souvent mentionné que Hadoop est "schema on read", par opposition à la plupart des systèmes RDBMS traditionnels qui exigent une définition de schéma stricte avant toute donnée peut être intégrée dans eux.

"Schema on read "crée" l'agilité des données": quand un nouveau champ de données est nécessaire, on n'est pas nécessaire pour passer par un long projet de refonte de schéma et de migration de base de données en production, qui peut durer des mois. L'impact positif se répercute à travers une organisation et très rapidement tout le monde veut utiliser Hadoop pour leur projet, pour atteindre le même niveau d'agilité, et d'obtenir un avantage concurrentiel pour leur entreprise et leur gamme de produits.

ruche: - - -

Hive est un outil d'infrastructure de stockage de données à traiter données structurées en Hadoop. Il se trouve au-dessus de Hadoop pour résumer les grandes données, et rend la recherche et l'analyse facile.

SI VOUS NE CONNAISSEZ PAS PYTHON OU JAVA POUR TRAITER LE CODE MAPREDUCE...VOUS SEREZ ALORS NE VOUS INQUIÉTEZ PAS..MAIS SI VOUS CONNAISSEZ SQL, VOUS DEVRIEZ UTILISER HIVE..C'EST AUSSI APPELÉ HIVEQL..POUR L'INTERROGATION DE GRANDS ENSEMBLES DE DONNÉES...

cochon:--

Pourquoi Avons-Nous Besoin D'Un Cochon Apache? Les programmeurs qui ne sont pas aussi bons en Java ont normalement l'habitude de lutter avec Hadoop, surtout en exécutant des tâches MapReduce. Apache Pig est une aubaine pour tous ces programmeurs.

en utilisant le latin Pig, les programmeurs peuvent effectuer des tâches MapReduce facilement sans avoir à taper des codes complexes en Java.

Apache Pig utilise l'approche multi-requête, réduisant ainsi la longueur des codes. Par exemple, une opération qui vous exigerait de taper 200 les lignes de code (LoC) en Java peuvent être facilement faites en tapant moins que 10 LoC dans Apache Pig. En fin de compte, Apache Pig réduit le temps de développement de près de 16 fois.

Pig Latin est un langage de type SQL et il est facile d'apprendre Apache Pig lorsque vous êtes familier avec SQL.

Apache Pig fournit de nombreux opérateurs intégrés pour prendre en charge les opérations de données comme les jointures, les filtres, la commande, etc. En outre, il fournit également des types de données imbriquées comme tuples, sacs, et les cartes qui manquent de MapReduce

HBASE:--

Apache HBase est l'une des bases de données non relationnelles les plus populaires construites sur Hadoop et HDFS (Hadoop Distributed File system). Elle est également connue sous le nom de base de données Hadoop. Comme un projet Apache, HBase est un open-source, versionné et distribué NoSQL DB écrit dans le langage Java. Il est construit sur les grands concepts de Google. Apache HBase est adapté aux cas d'utilisation où vous avez besoin d'un accès en temps réel et aléatoire en lecture/écriture à d'énormes volumes de données (Big data). Comme HBase tourne sur HDFS, la performance dépend aussi du support matériel. Nous devons fournir un nombre suffisant de noeuds (minimum 5) pour obtenir une meilleure performance.

quelles sont les caractéristiques de Hbase NoSQL DB? Apache HBase est une base de données orientée colonne qui supporte le schéma de base de données dynamique. Il fonctionne principalement sur le dessus des HDFS et prend en charge MapReduce Jobs. HBase prend également en charge d'autres langages de haut niveau pour le traitement des données. Regardons les différentes caractéristiques de HBase:.

l'Évolutivité: HBase prend en charge l'évolutivité à la fois linéaire et d'une forme modulaire

Sharding: HBase prend en charge le partage automatique des tables. Il est également configurable.

stockage distribué : HBase prend en charge le stockage distribué comme HDFS

Consistency : il supporte des opérations cohérentes de lecture et d'écriture

Basculement : HBase prend en charge le basculement automatique

prise en charge API: HBase prend en charge les API Java afin que les clients puissent y accéder facilement MapReduce support: HBase support MapReduce pour le traitement parallèle d'un grand volume de données

sauvegarder soutien: HBase soutient la sauvegarde de Hadoop MapReduce jobs in HBase tables Traitement en temps réel: il prend en charge les filtres block cache et Bloom. Ainsi, le traitement de requête en temps réel est facile

0
répondu Bittu Thakur 2018-01-06 14:45:51

nettoyage des données dans le porc est très facile, une approche appropriée serait le nettoyage des données à travers le porc, puis le traitement des données à travers la ruche et ensuite le téléchargement vers hdfs.

0
répondu Akshay Sharma 2018-05-12 04:09:04

Use of Hive,Hbase and Pig W. R. T. mon expérience en temps réel dans différents projets.

Ruche est principalement utilisé pour:

-- but analytique où vous devez faire une analyse des données historiques

--production de rapports d'entreprise à partir de certaines colonnes

-- gestion efficace des données et des métadonnées 151910920"

-- joindre des tableaux sur certaines colonnes qui sont fréquemment utilisé en utilisant le concept de flambage

--stockage et interrogation efficaces utilisant le concept de partitionnement

--inutile pour les opérations au niveau des mouvements / lignes comme la mise à jour, la suppression, etc.

le porc est principalement utilisé pour:

--Fréquentes de l'analyse de données données gigantesques

--Générer des valeurs agrégées/compte de données gigantesques

--génération de la clé au niveau de l'entreprise indicateurs de rendement très fréquemment

Hbase est principalement utilisé:

--pour le traitement de données en temps réel

-- pour gérer efficacement les schémas complexes et imbriqués 151910920"

-- pour interrogation en temps réel et résultat plus rapide

-- pour une évolutivité facile avec les colonnes

-- utile pour les opérations au niveau des mouvements / lignes comme la mise à jour, la suppression, etc.

0
répondu user1326784 2018-08-02 04:06:36