2017-10-12 10 views
1

Ceci est un problème général dans notre groupe où nos requêtes Hive évoluent fréquemment pour consommer la plupart des exécuteurs YARN disponibles et de la mémoire sur notre cluster CDH. Alors que le problème sous-jacent est le nombre de partitions dans nos tables et la complexité de nos jointures, nous ne sommes pas libres de reconstruire ces tables. Nous pouvons contrôler la consommation de ressources dans Spark en configurant spark.dynamicAllocation.maxExecutors et spark.executor.memory. Y a-t-il quelque chose de similaire que nous pouvons utiliser sur Hue pour que Hue "joue bien" avec d'autres jobs sur le cluster?Existe-t-il un paramètre de configuration pour Hive on Hue (CDH 5.9.3) qui limite le nombre de conteneurs pouvant être utilisés?

Répondre

0

Hue est une interface utilisateur et ne peut pas contrôler le nombre de ressources utilisées par Hive. Ceci est contrôlé par YARN via des politiques de planification. Pour les clusters CDH, l'ordonnanceur équitable est généralement utilisé.

http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

Vous devriez regarder ce qui suit pour des informations générales sur la façon de le mettre en place.

0

Oui, vous pouvez mieux gérer la quantité de ressources de calcul du cluster Hadoop étant utilisé à partir de votre Hue -launched Hive requêtes. Pour ce faire, vous devez d'abord configurer les files d'attente du planificateur YARN; pour la distribution de CCQ Cloudera, ceux-ci sont appelés pools de ressources dynamiques

Vous pouvez en savoir plus sur ce sujet dans le CDH Documentation

Une fois que vous avez configuré une piscine destinée à votre lancée Hue, semi-interactifs, les requêtes Hive, vous peut indiquer à Hive de faire appel à cette requête pour une requête individuelle en passant le nom du pool de ressources pour la valeur de la clé mapred.job.queue.name.

Imaginons que notre nom de file d'attente s'appelle interactive.hive_queue. Nous préfixer cette déclaration SET avant notre instruction de requête HiveQL:

SET mapred.job.queue.name=interactive.hive_queue; 

Vous devrez peut-être mettre à jour votre configuration de Hue hue.ini pour permettre à cette valeur de configuration à passer à travers par vos utilisateurs de Hue

Référence: HiveQL Language Manual

Vous devriez également pouvoir créer une configuration Hive enregistrée pour Hue afin d'utiliser toujours cette file d'attente YARN pour vos requêtes Hive lancées par teinte.

Référence: hiveserver2.py

(cela suppose que vous utilisez le moteur d'exécution MapReduce (mr2) pour vos requêtes Hive)

Si vous vouliez changer la file d'attente pour toutes vos requêtes Hive, vous pourriez faire ceci en changeant la configuration de Hive Server2 hive-site.xml. Cette modification ressemblerait à:

<property> 
    <name>mapreduce.job.queuename</name> 
    <value>interactive.hive_queue</value> 
</property>