Quand utiliser Hadoop, HBase, Hive et Pig?

185

Quels sont les avantages de l' utilisation soit Hadoop ou HBase ou Ruche ?

D'après ce que je comprends, HBase évite d'utiliser la réduction de carte et dispose d'un stockage orienté colonne au-dessus de HDFS. Hive est une interface de type sql pour Hadoop et HBase .

J'aimerais également savoir comment Hive se compare à Pig .

Khalefa
la source
Hadoop : système de fichiers distribués Hadoop + modèle de traitement informatique MapReduce. HBase : stockage clé-valeur, idéal pour la lecture et l'écriture en temps quasi réel. Hive : utilisé pour l'extraction de données à partir du HDFS à l'aide d'une syntaxe de type SQL. Pig : est un langage de flux de données pour créer ETL.
dbustosp

Réponses:

348

MapReduce n'est qu'un cadre informatique . HBase n'a rien à voir avec cela. Cela dit, vous pouvez efficacement placer ou récupérer des données vers / depuis HBase en écrivant des tâches MapReduce. Vous pouvez également écrire des programmes séquentiels à l'aide d'autres API HBase, telles que Java, pour placer ou récupérer les données. Mais nous utilisons Hadoop, HBase, etc. pour traiter des quantités gigantesques de données, donc cela n'a pas beaucoup de sens. L'utilisation de programmes séquentiels normaux serait très inefficace lorsque vos données sont trop volumineuses.

Pour revenir à la première partie de votre question, Hadoop est essentiellement 2 choses: un système de fichiers distribués (HDFS) + un cadre de calcul ou de traitement (MapReduce) . Comme tous les autres FS, HDFS nous fournit également du stockage, mais de manière tolérante aux pannes avec un débit élevé et un risque moindre de perte de données (en raison de la réplication). Mais, étant un FS, HDFS n'a pas d' accès aléatoire en lecture et en écriture . C'est là qu'intervient HBase. Il s'agit d'un magasin Big Data distribué et évolutif , inspiré du BigTable de Google. Il stocke les données sous forme de paires clé / valeur.

Venir à Hive. Il nous fournit des installations d' entreposage de données au-dessus d'un cluster Hadoop existant. Parallèlement à cela, il fournit une interface de type SQL qui facilite votre travail, au cas où vous viendriez d'un arrière-plan SQL. Vous pouvez créer des tables dans Hive et y stocker des données. Parallèlement à cela, vous pouvez même mapper vos tables HBase existantes à Hive et les utiliser.

Alors que Pig est essentiellement un langage de flux de données qui nous permet de traiter d'énormes quantités de données très facilement et rapidement. Pig est essentiellement composé de 2 parties: l' interpréteur de porc et la langue, PigLatin . Vous écrivez un script Pig dans PigLatin et utilisez l'interpréteur Pig pour les traiter. Pig nous rend la vie beaucoup plus facile, sinon écrire MapReduce n'est toujours pas facile. En fait, dans certains cas, cela peut vraiment devenir une douleur.

J'avais écrit un article sur une courte comparaison des différents outils de l'écosystème Hadoop il y a quelque temps. Ce n'est pas une comparaison approfondie, mais une brève introduction à chacun de ces outils qui peut vous aider à démarrer. (Juste pour ajouter à ma réponse. Aucune promotion personnelle n'est prévue)

Les requêtes Hive et Pig sont converties en tâches MapReduce sous le capot.

HTH

Tariq
la source
Vous oubliez de parler de l' yarnécosystème Hadoop :(.
Kenry Sanchez
53

J'ai récemment implémenté une plateforme Hive Data dans mon entreprise et je peux en parler à la première personne puisque j'étais une équipe composée d'un seul homme.

Objectif

  1. Pour que les fichiers journaux Web quotidiens collectés à partir de plus de 350 serveurs soient interrogeables quotidiennement via un langage de type SQL
  2. Pour remplacer les données d'agrégation quotidiennes générées via MySQL par Hive
  3. Créer des rapports personnalisés via des requêtes dans Hive

Options d'architecture

J'ai évalué les options suivantes:

  1. Hive + HDFS
  2. Hive + HBase - les requêtes étaient trop lentes, j'ai donc vidé cette option

Conception

  1. Les fichiers journaux quotidiens ont été transportés vers HDFS
  2. Les travaux MR ont analysé ces fichiers journaux et les fichiers de sortie dans HDFS
  3. Créez des tables Hive avec des partitions et des emplacements pointant vers des emplacements HDFS
  4. Créez des scripts de requête Hive (appelez-le HQL si vous le souhaitez comme différent de SQL ) qui à leur tour exécutaient des travaux MR en arrière-plan et généraient des données d'agrégation
  5. Mettez toutes ces étapes dans un flux de travail Oozie - planifié avec Daily Oozie Coordinator

Résumé

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

Si vous avez des données qui doivent être agrégées, regroupées, analysées sur plusieurs lignes, envisagez Hive .

Espérons que cela aide.

La ruche est vraiment géniale ... Je sais, je la vis depuis 12 mois maintenant ... HBase aussi ...

Sanjay Subramanian
la source
1
HBase est une base de données NonSQL qui stocke les données dans HDFS. Il est utilisé lorsque vous avez besoin d'un accès en lecture / écriture aléatoire et en temps réel à vos données volumineuses.
Boucle racine du
28

Hadoop est un framework qui permet le traitement distribué de grands ensembles de données sur des grappes d'ordinateurs à l'aide de modèles de programmation simples.

Il existe quatre modules principaux dans Hadoop.

  1. Hadoop Common : les utilitaires communs qui prennent en charge les autres modules Hadoop.

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

  3. Hadoop YARN : un cadre pour la planification des travaux et la gestion des ressources de cluster.

  4. Hadoop MapReduce : un système basé sur YARN pour le traitement parallèle de grands ensembles de données.

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

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

  • Non structuré : les données n'ont aucune structure et peuvent être de n'importe quelle forme - journaux de serveur Web, e-mails, images, etc.

  • Semi-structuré : les données ne sont pas strictement structurées mais ont une certaine structure. par exemple des 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 distribuée évolutive qui prend en charge le stockage de données structuré pour les grandes tables.

  • Hive ™: Une infrastructure d'entrepôt de données qui fournit une synthèse des données et des requêtes ad hoc.

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

La comparaison Hive Vs PIG peut être trouvée dans cet article et mon autre article à cette question SE .

HBASE ne remplacera pas Map Reduce. HBase est une base de données distribuée évolutive et Map Reduce est un modèle de programmation pour le traitement distribué des données. Map Reduce peut agir sur les données dans HBASE lors du traitement.

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

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

Vous pouvez utiliser FLUME pour traiter des données non structurées et les traiter avec Hadoop Map Reduce

Jetez un œil à: Cas d'utilisation Hadoop .

Hive doit être utilisé pour l'interrogation analytique des données collectées sur une période de temps. Par exemple, 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 convient pour l'interrogation en temps réel du Big Data. Facebook l'utilise pour la messagerie et les analyses en temps réel.

PIG peut être utilisé pour construire des flux de données, exécuter des tâches planifiées, traiter de gros volumes de données, les agréger / les résumer et les stocker dans des systèmes de base de données en 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.

Ravindra babu
la source
Facebook n'utilise plus HBase open source pour les systèmes de messagerie en temps réel. Ils l'ont remplacé par leur propre [base de données Myrocks]. ( engineering.fb.com/core-data/… )
PPK
23

Considérez que vous travaillez avec le SGBDR et que vous devez sélectionner ce qu'il faut utiliser - analyses complètes de la table ou accès à l'index - mais un seul d'entre eux.
Si vous sélectionnez une analyse complète de la table, utilisez hive. Si l'accès à l'index - HBase.

David Gruzman
la source
En fait, vous pouvez créer Hive sur HBase afin de pouvoir utiliser HQL pour analyser complètement hbase tout en étant capable de faire des requêtes indexées directement sur hbase. Mais je doute que cela vous donne des performances plus lentes en analyse complète.
FrostNovaZzz
HBase est un système orienté écriture, il n'est pas optimal sur les scans, bien que les données soient stockées triées. Ainsi, bien que la numérisation de certaines plages puisse être un bon choix, les analyses complètes seront beaucoup plus lentes que directement à partir de HDFS
David Gruzman
5

Pour une comparaison entre Hadoop Vs Cassandra / HBase, lisez cet article .

En gros, HBase permet une lecture et une écriture très rapides avec une évolutivité. À quelle vitesse et évolutivité? Facebook l' utilise pour gérer ses statuts d'utilisateur, ses photos, ses messages de chat, etc. HBase est si rapide que des piles ont parfois été développées par Facebook pour utiliser HBase comme magasin de données pour Hive lui-même.

Where As Hive ressemble plus à une solution d'entreposage de données. Vous pouvez utiliser une syntaxe similaire à SQL pour interroger le contenu Hive, ce qui aboutit à une tâche de réduction de mappage. Pas idéal pour les systèmes transactionnels rapides.

Shazin
la source
5

J'ai travaillé sur l'architecture Lambda traitant des charges en temps réel et par lots. Un traitement en temps réel est nécessaire lorsque des décisions rapides doivent être prises en cas d'envoi d'alarme incendie par capteur ou de 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 de BI.

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

Traitement en temps réel

Apache Storm: traitement des données en flux, application de règles

HBase: Datastore pour servir le tableau de bord en temps réel

Traitement par lots Hadoop: analyse d'énormes quantités de données. Vue d'ensemble à 360 degrés ou ajout de contexte aux événements. Des interfaces ou des frameworks comme Pig, MR, Spark, Hive, Shark aident à l'informatique. Cette couche a besoin d'un planificateur pour lequel Oozie est une bonne option.

Couche de gestion des événements

Apache Kafka était la première couche à consommer les événements à haute vitesse du capteur. Kafka sert à la fois le flux de données d'analyse en temps réel et par lots via des connecteurs Linkedin.

akshat thakar
la source
5

Comprendre en profondeur

Hadoop

Hadoopest un projet open source de la Apachefondation. Il s'agit d'un framework écrit Java, développé à l'origine par Doug Cutting en 2005. Il a été créé pour prendre en charge la distribution Nutchdu moteur de recherche de texte. Hadooputilise les Map Reducetechnologies de système de fichiers de Google et Google comme base.

Caractéristiques de Hadoop

  1. Il est optimisé pour gérer 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 n'a rien partagé d'architecture.
  3. Il réplique ses données sur plusieurs ordinateurs de sorte que si l'un d'entre eux tombe en panne, les données peuvent toujours être traitées à partir d'une autre machine qui stocke sa réplique.
  4. Hadoopest pour un débit élevé plutôt qu'une faible latence. Il s'agit d'une opération par lots traitant d'énormes quantités de données; donc 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. Cependant, ce n'est pas un remplacement pour un RDBMS.
  6. Ce n'est pas bon lorsque le travail ne peut pas être parallélisé ou lorsqu'il existe des dépendances dans les données.
  7. Ce n'est pas bon pour le traitement de petits fichiers. Cela fonctionne mieux avec d'énormes fichiers de données et ensembles de données.

Versions de Hadoop

Il existe deux versions de Hadoopdisponibles:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Il comprend deux parties principales:

1. Cadre de stockage des données

Il s'agit d'un système de fichiers à usage général appelé Hadoop Distributed File System ( HDFS).

HDFS est sans schéma

Il stocke simplement des fichiers de données et ces fichiers de données peuvent être dans n'importe quel format.

L'idée est de stocker les fichiers le plus près possible de leur forme d'origine.

Cela fournit à son tour aux unités commerciales et à l'organisation la flexibilité et l'agilité indispensables sans être trop préoccupés par ce qu'ils peuvent mettre en œuvre.

2. Cadre de traitement des données

Il s'agit d'un modèle de programmation fonctionnelle simple initialement popularisé par Google sous le nom de MapReduce.

Il utilise essentiellement deux fonctions: MAPet REDUCEpour traiter les données.

Les "Mappers" prennent un ensemble de paires clé-valeur et génèrent des données intermédiaires (qui est une autre liste de paires clé-valeur).

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

Les deux fonctions fonctionnent apparemment de manière isolée l'une avec l'autre, permettant ainsi au traitement d'être hautement distribué de manière hautement parallèle, avec tolérance aux pannes et évolutive.

Limitations de Hadoop 1.0

  1. La première limite était l'exigence d' MapReduceune expertise en programmation.

  2. Il ne prenait en charge que le traitement par lots, ce qui, bien qu'adapté à des tâches telles que l'analyse de journaux, des projets d'exploration de données à grande échelle, mais qui ne convenait pas à d'autres types de projets.

  3. Une limitation majeure était qu'il Hadoop 1.0était étroitement lié au calcul MapReduce, ce qui signifiait que les fournisseurs de gestion de données établis se retrouvaient avec deux opinions:

    1. Soit réécrivez leur fonctionnalité dans MapReduceafin qu'elle puisse être exécutée dans Hadoopou

    2. Extraire des données HDFSou les traiter en dehors de Hadoop.

Aucune des options n'était viable car elle entraînait des inefficacités de processus causées par le transfert de données à l'intérieur et à l'extérieur du Hadoopcluster.

Hadoop 2.0

Dans Hadoop 2.0, HDFScontinue d'être un cadre de stockage de données.

Cependant, un nouveau cadre séparé de la gestion des ressources appelée Y et A utre R esource N egotiater ( YARN ) a été ajouté.

Toute application capable de se diviser en tâches parallèles est prise en charge par YARN.

YARN coordonne l'attribution des sous-tâches de la candidature soumise, améliorant ainsi davantage la flexibilité, l'évolutivité et l'efficacité des applications.

Il fonctionne en ayant un maître d'application à la place de Job Tracker , exécutant des applications sur des ressources régies par le nouveau gestionnaire de nœuds .

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 également le traitement en temps réel. MapReducen'est plus la seule option de traitement des données.

Avantages de Hadoop

Il stocke les données dans son format natif à partir de. Aucune structure n'est imposée lors de la saisie des données ou du stockage des données. HDFSest le schéma moins. Ce n'est que plus tard, lorsque les données doivent être traitées, que la structure s'impose aux données brutes.

Il est évolutif. Hadooppeut stocker et distribuer de très grands ensembles de données sur des centaines de serveurs bon marché fonctionnant en parallèle.

Il résiste à l'échec. Hadoopest 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 nœud, les mêmes données sont également répliquées sur d'autres nœuds du cluster, garantissant ainsi qu'en cas de défaillance du nœud, il y aura toujours une autre copie des données disponibles.

C'est flexible. L'un des principaux avantages de Hadoopest qu'il peut fonctionner avec tout type de données: structurées, non structurées ou semi-structurées. En outre, le traitement est extrêmement rapide en Hadoopraison du paradigme «déplacer le code vers les données».

Écosystème Hadoop

Voici les composants de l' Hadoopécosystème:

HDFS : Hadoopsystème de fichiers distribué. Il stocke simplement les fichiers de données aussi près que possible du formulaire d'origine.

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

Hive : Il permet l'analyse de grands ensembles de données en utilisant un langage très similaire à la norme ANSI SQL, ce qui implique que toute personne familière avec SQLdevrait pouvoir accéder aux données sur un Hadoopcluster.

Pig : C'est un langage de flux de données facile à comprendre. Cela aide à l'analyse de grands ensembles de données, ce qui est tout à fait dans l'ordre Hadoop. Pigles scripts sont automatiquement convertis en MapReducejobs par l' Piginterpréteur.

ZooKeeper : C'est un service de coordination pour les applications distribuées.

Oozie : C'est un schedularsystème de workflow pour gérer les Hadooptravaux Apache .

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

Chukwa : C'est un système de collecte de données pour gérer un grand système distribué.

Sqoop : Il est utilisé pour transférer des données en masse entre Hadoopdes magasins de données structurés tels que des bases de données relationnelles.

Ambari : C'est un outil Web pour l'approvisionnement, la gestion et la surveillance des Hadoopclusters.

Ruche

Hiveest un outil d'infrastructure d'entrepôt de données pour traiter des données structurées Hadoop. Il s'agit de Hadooprésumer le Big Data et facilite les requêtes et l'analyse.

Hive n'est pas

  1. Une base de données relationnelle

  2. Une conception 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 Hive

  1. Il stocke le schéma dans la base de données et les données traitées dans HDFS.

  2. Il est conçu pour OLAP.

  3. Il fournit SQLun langage de type pour l'interrogation appelé HiveQLou HQL.

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

Architecture de la ruche

Les composants suivants sont contenus dans l'architecture Hive:

  1. Interface utilisateur : Hiveest une data warehouseinfrastructure qui peut créer une interaction entre l'utilisateur et HDFS. Les interfaces utilisateur qui Hiveprennent en charge sont l'interface utilisateur Web Hive, la ligne de commande Hive et Hive HD Insight (dans Windows Server).

  2. MetaStore : Hivechoisit respectivement database serversde stocker le schéma ou Metadatades tables, bases de données, colonnes dans une table, leurs types de données et leur HDFSmappage.

  3. HiveQL Process Engine : HiveQLest similaire à celui SQLdes requêtes sur les informations de schéma sur le Metastore. C'est l'un des remplacements de l'approche traditionnelle du MapReduceprogramme. Au lieu d'écrire MapReducedans Java, nous pouvons écrire une requête pour MapReduceet traiter.

  4. Exceution Engine : La partie de conjonction du HiveQLmoteur de processus et MapReduceest le Hivemoteur d'exécution. Le moteur d'exécution traite la requête et génère des résultats identiques à ceux de MapReduce results. Il utilise la saveur de MapReduce.

  5. HDFS ou HBase : HadoopDistributed File System ou HBasesont les techniques de stockage de données pour stocker des données dans un système de fichiers.

Pankti
la source
1

Tout d'abord, nous devons comprendre que Hadoop a été créé comme une alternative plus rapide au SGBDR . Traiter une grande quantité de données à un rythme très rapide, ce qui prenait auparavant beaucoup de temps dans le 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 le SGBDR traditionnel et qui sont divisées en structures bien définies.

  2. Données non structurées : Ceci est important à comprendre, environ 80% des données mondiales sont non structurées ou semi-structurées. Ce sont les données qui sont sous leur forme brute et ne peuvent pas être traitées à l'aide du 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 ces dernières années et les données étaient pour la plupart non structurées, ce qui a donné naissance à HADOOP. Il a été principalement utilisé pour une très grande quantité de données qui prend un temps irréalisable en utilisant le 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 dire qu'un nouvel outil Big Data est créé lorsqu'ils voient un défaut sur les outils précédents. Ainsi, quel que soit l'outil que vous verrez créé, il a été fait pour surmonter le problème des outils précédents.

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 suivait le principe WORM c'est-à-dire écrire une fois lu plusieurs fois. Ainsi, une fois que nous avons stocké des données dans HDFS, nous ne pouvons pas apporter de modifications. Cela a conduit à la création de HBASE , un produit NOSQL où nous pouvons apporter des modifications aux données même après les avoir écrites une fois.

Mais avec le temps, nous avons vu que Hadoop avait de nombreux défauts et pour cela, nous avons créé un environnement différent sur la structure Hadoop. PIG et HIVE sont deux exemples populaires.

HIVE a été créé pour les personnes ayant une expérience SQL . Les requêtes écrites sont similaires au SQL nommé HIVEQL . HIVE a été développé pour traiter des données complètement structurées . Il n'est pas utilisé pour les données structurées.

PIG d'autre part a son propre langage de requête, c'est-à-dire PIG LATIN . Il peut être utilisé aussi bien structuré ainsi que des données non structurées .

Passant à la différence entre quand utiliser HIVE et quand utiliser PIG, je ne pense pas que quelqu'un d'autre que l'architecte de PIG puisse le dire. Suivez le lien: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


la source
1

Hadoop:

HDFS signifie Hadoop Distributed File System qui utilise le modèle de traitement informatique Map-Reduce.

HBase:

HBase est un stockage clé-valeur, idéal pour la lecture et l'écriture en temps quasi réel.

Ruche:

Hive est utilisé pour l'extraction de données à partir du HDFS à l'aide d'une syntaxe de type SQL. Hive utilise le langage HQL.

Porc:

Pig est un langage de flux de données pour créer ETL. C'est un langage de script.

nixxo_raa
la source
0

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 centimes:

  1. Hive: Si votre besoin est très SQL, ce qui signifie que votre énoncé de problème peut être traité par SQL, la chose la plus simple à faire serait d'utiliser Hive. L'autre cas, lorsque vous utilisez la ruche, c'est lorsque vous voulez qu'un serveur ait une certaine structure de données.
  2. Pig: Si vous êtes à l'aise avec Pig Latin et que vous avez besoin de plus de pipelines de données. De plus, vos données manquent de structure. Dans ces cas, vous pouvez utiliser Pig. Honnêtement, il n'y a pas beaucoup de différence entre Hive & Pig en ce qui concerne les cas d'utilisation.
  3. MapReduce: Si votre problème ne peut pas être résolu en utilisant SQL directement, vous devez d'abord essayer de créer UDF pour Hive & Pig, puis si l'UDF ne résout pas le problème, il est logique de le faire via MapReduce.
Sandeep Giri
la source
0

Pig: il vaut mieux gérer les fichiers et nettoyer les données exemple: suppression des valeurs nulles, gestion des chaînes, valeurs inutiles Hive: pour interroger les données nettoyées

y durga prasad
la source
0

Nous utilisons Hadoop pour stocker des données volumineuses (données iestructure, non structurées et semi-structurées) au format de fichier de forme comme txt, csv.

2.Si nous voulons des mises à jour en colonnes dans nos données, nous utilisons l'outil Hbase

Dans le cas de Hive, nous stockons des Big data dans un format structuré et en plus de cela, nous fournissons une analyse sur ces données.

4.Pig est un outil qui utilise la langue latine Pig pour analyser des données dans n'importe quel format (structure, semi-structure et non-structure).

swaroop
la source
0

Le nettoyage des données dans Pig est très simple, une approche appropriée serait de nettoyer les données via Pig, puis de traiter les données via Hive et de les télécharger plus tard sur hdfs.

Akshay Sharma
la source
0

Utilisation de Hive, Hbase et Pig pour mon expérience en temps réel dans différents projets.

Hive est principalement utilisé pour:

  • Objectif d'analyse où vous devez effectuer une analyse sur les données d'historique

  • Générer des rapports d'activité basés sur certaines colonnes

  • Gérer efficacement les données avec les informations de métadonnées

  • Joindre des tables sur certaines colonnes fréquemment utilisées à l'aide du concept de compartimentage

  • Stockage et interrogation efficaces à l'aide du concept de partitionnement

  • Pas utile pour les opérations au niveau des transactions / lignes telles que la mise à jour, la suppression, etc.

Le porc est principalement utilisé pour:

  • Analyse fréquente des données sur des données volumineuses

  • Générer des valeurs / décomptes agrégés sur d'énormes données

  • Générer très fréquemment des indicateurs de performance clés au niveau de l'entreprise

L'Hbase est principalement utilisée:

  • Pour le traitement des données en temps réel

  • Pour une gestion efficace des schémas complexes et imbriqués

  • Pour des requêtes en temps réel et des résultats plus rapides

  • Pour une évolutivité facile avec les colonnes

  • Utile pour les opérations au niveau des transactions / lignes telles que la mise à jour, la suppression, etc.

user1326784
la source
0

La réponse courte à cette question est -

Hadoop - Is Framework qui facilite le système de fichiers distribué et le modèle de programmation qui nous permettent de stocker des données de taille énorme et de traiter les données de manière distribuée très efficacement et avec un temps de traitement très réduit par rapport aux approches traditionnelles.

(HDFS - Système de fichiers distribués Hadoop) (Map Reduce - Modèle de programmation pour le traitement distribué)

Hive - Est un langage de requête qui permet de lire / écrire des données à partir du système de fichiers distribué Hadoop dans un langage SQL très populaire. Cela a rendu la vie plus facile pour de nombreuses personnes non-programmantes car elles n'ont plus à écrire de programme Map-Reduce, sauf pour des scénarios très complexes où Hive n'est pas pris en charge.

Hbase - Est une base de données NoSQL en colonne. La couche de stockage sous-jacente pour Hbase est à nouveau HDFS. Le cas d'utilisation le plus important de cette base de données est de pouvoir stocker des milliards de lignes avec des millions de colonnes. La fonction de faible latence d'Hbase permet un accès plus rapide et aléatoire aux enregistrements sur les données distribuées, est une fonctionnalité très importante pour la rendre utile pour des projets complexes tels que les moteurs de recommandation. De plus, sa capacité de gestion des versions au niveau des enregistrements permet à l'utilisateur de stocker des données transactionnelles très efficacement (cela résout le problème de la mise à jour des enregistrements que nous avons avec HDFS et Hive)

J'espère que cela sera utile pour comprendre rapidement les 3 fonctionnalités ci-dessus.

Ajay Ahuja
la source
0

Je crois que ce fil n'a pas rendu justice en particulier à HBase et Pig en particulier. Bien que je pense que Hadoop soit le choix du système de fichiers distribué et résilient pour les implémentations de Big Data Lake, le choix entre HBase et Hive est en particulier bien séparé.

Comme dans, de nombreux cas d'utilisation ont une exigence particulière d'interfaces de type SQL ou No-SQL. Avec Phoenix au-dessus de HBase, bien que des capacités de type SQL soient certainement réalisables, les performances, les intégrations tierces et la mise à jour du tableau de bord sont une sorte d'expériences douloureuses. Cependant, c'est un excellent choix pour les bases de données nécessitant une mise à l'échelle horizontale.

Pig est en particulier excellent pour les lots non récursifs comme les calculs ou le pipelining ETL (quelque part, où il surpasse Spark par une distance confortable). En outre, ses implémentations de flux de données de haut niveau constituent un excellent choix pour les requêtes par lots et les scripts. Le choix entre Pig et Hive est également basé sur le besoin de scripts côté client ou serveur, les formats de fichiers requis, etc. Pig prend en charge le format de fichier Avro, ce qui n'est pas vrai dans le cas de Hive. Le choix du «langage de flux de données procédural» par rapport au «langage de flux de données déclaratif» est également un argument fort pour le choix entre le porc et la ruche.


la source