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

Hadoop & co Discussion :

Hadoop - Hive


Sujet :

Hadoop & co

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Hadoop - Hive
    Bonjour,

    j'aurais besoin d'aide lors que je lance une requête hive> select count(*) from tweet;
    j 'ai cette erreur qui est sur la capture. de plus, je suis sur Aws avec des machines EC2 avec un cluster constitué de 1 NameNode et 2 DataNode , je ne comprends pas. Je crois comprendre qu'il s'agit de la mémoire pour les mapreduce mais je comprends pas malgré mes nombreux test.
    Nom : Capture d’écran 2022-01-27 à 03.38.24.png
Affichages : 153
Taille : 287,1 Ko

    Cordialement

    Merci de votre lecture

  2. #2
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Il ne s'agit pas d'erreurs, mais d'une indication comme quoi certains paramètres ne sont pas gérés, et donc que leurs valeurs sont calculées à l'exécution, ce qui est le cas ici du nombre de Reducers nécessaires à votre requête.

    Hive n'est qu'une surcouche logicielle s'exécutant au-dessus du Framework de calcul distribué MapReduce.

    Son but est de prendre la requête HQL (Hive Query Langage, langage très très proche du SQL) et de générer pour vous le code Java des Mappers et des Reducers.
    Hive fonctionne historiquement avec MapReduce comme moteur d'exécution, mais il existe un second moteur d'exécution qui s'appelle Tez, et qui a introduit des améliorations, notamment en essayant de limiter le nombre de JVM utilisées en les recyclant, et en essayant de regrouper des opérations pour diminuer le nombre de Mappers et de Reducers. Cela permet aussi de limiter le nombre d'écritures temporaires sur disque, et donc le moteur TEZ est plus performant que le moteur MR (MapReduce).

    Sur Hadoop, les données sont distribuées sur tous les datanodes du cluster. Donc pour les traiter avec Hive, la première phase de Map nécessite d'avoir au moins un (voir plusieurs) Mappers sur les Datanodes où les données résident.

    Par contre, pour la phase de Reduce, il faut en général beaucoup moins de Reducers. C'est là que se pose d'ailleurs toute la question : combien de Reducers sont nécessaires par rapport à mon traitement ?

    Dans votre cas, comme vous ne faites qu'un count (*), un seul Reducer suffit pour compter toutes les lignes.

    Je vous donne un autre exemple : imaginez que vous fassiez un regroupement (un GROUP BY) sur 4 services (RH, DG, Marketing, Commerciaux) pour compter le nombre d'employés par service.
    Bien sur, il vous faut au moins un Reducer. Mais l'idéal, c'est d'en avoir 4, un Reducer par service.

    Comme cela, les Mappers vont lire les données localement sur les datanodes, et ensuite ces données vont être transmises au bon Reducer. Par exemple, le Reducer 1 ne recevra que les données du service RH, le Reducer 2 ne va recevoir que les données pour la Direction Générale, etc, etc. C'est ce qu'on appelle la phase de Shuffle and Sort, et c'est pris en charge par le Framework de calcul distribué MapReduce.

    Cela permet de paralléliser ainsi les traitements, et donc d'aller plus vite, à condition que le cluster Hadoop soit capable d'offrir toute la puissance requise en terme de coeurs et de mémoire.

    Dans les messages que vous avez, vous pouvez utiliser les paramètres indiqués pour fixer le noimbre de Reducers, ou pour le limiter.

    Et vous pouvez aussi utiliser le paramètre compliqué hive.exec.reducers.bytes.per.reducers pour fixer indirectement ce nombre de Reducers.
    A chaque fois, pour tenter de comprendre la signification plus ou moins claire de ces paramètres, on passe énormément de temps à chercher sur Internet.
    J'ai trouvé par exemple cet article :
    https://docs.microsoft.com/fr-fr/azu...ze-hive-ambari

    A titre personnel, je déteste Hive justement pour cela. Soit vos requêtes HQL fonctionnent, soit elles ne fonctionnent pas et vous passez votre temps à comprendre toute cette tripotée de paramètres qui existe sur Hive pour le moteur MR, mais aussi pour TEZ.

    Bienvenue dans le monde merveilleux du Big Data et notamment du cluster Hadoop, technologie certes forte intéressante, mais très difficile à comprendre dans sa globalité, surtout lorsque l'on souhaite utiliser tous les services offerts par un cluster Hadoop. La phase d'apprentissage est longue, et le chemin semé d'embûches.

Discussions similaires

  1. Apache HADOOP ET HIVE
    Par martial.kiba dans le forum Hadoop & co
    Réponses: 0
    Dernier message: 25/08/2020, 20h56
  2. Hadoop ecosysteme - Hive - hbase - Pig - Map reduce
    Par bordi dans le forum Hadoop & co
    Réponses: 20
    Dernier message: 22/06/2015, 21h52
  3. Aide fonction Hadoop Hive
    Par kent69003 dans le forum Big Data
    Réponses: 2
    Dernier message: 21/05/2015, 12h27
  4. Pilote ODBC cognos 8.4 BI et Big Data Hive (Hadoop)
    Par matouk dans le forum Cognos
    Réponses: 1
    Dernier message: 09/10/2013, 10h57

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