J'ai exécuté une requête de ruche qui fonctionnant bien pour le petit jeu de données. Mais je suis en cours d'exécution pour 250 millions d'enregistrements, je reçois des erreurs ci-dessous dans les journaux besoin d'aide sur ceci. p> p>
3 Réponses :
Si votre travail échoue à cause de l'OutOfMemory sur les nœuds, vous pouvez tendre votre numéro de max mapes et réducteurs et la JVM opte pour chacun. mapred.child.java.opts (la valeur par défaut est 200xmx) doit généralement être augmenté en fonction de vos nœuds de données. P>
J'ai vécu cela avec Mapraduce en général. Dans mon expérience, ce n'est pas en réalité une erreur de mémoire de mémoire - le système est à court de descripteurs de fichier pour démarrer les threads, c'est pourquoi il est indiqué "Impossible de créer un nouveau fil natif". P>
Le correctif pour nous (sur Linux) était d'augmenter l'ulimit, qui a été réglé sur 1024, à 2048 via: Vous pouvez vérifier vos paramètres actuels avec J'ai aussi vu beaucoup d'autres parler de la modification du fichier ulimit -n 2048 code>. Vous devrez avoir des autorisations pour le faire - soit le sudo, soit un accès root, soit une limite difficile de 2048 ou plus, de sorte que vous puissiez la définir comme votre propre utilisateur sur le système. Vous pouvez le faire dans votre
.profile code> ou
.bstrucc code> paramètres. p>
ulimit -a code>. Voir cette référence pour plus de détails: https://stackoverflow.com/a/34645/871012 p>
/etc/security/limits.conf code>, mais je n'ai pas encore eu à le faire. Voici un lien qui en parle: https://stackoverflow.com/a/8285278/871012 p>
Merci tout .. vous êtes correct. C'est en raison du descripteur de fichier, car mon programme générait beaucoup de fichier dans la table cible. en raison de la structure de partition multiple. p>
J'ai augmenté l'ulimit et aussi la propriété Xceivers. Cela a aidé. mais toujours dans notre situation, ces limites ont également été croisées p>
Ensuite, nous avons décidé de distribuer des données conformément aux partitions, puis nous n'obtenons qu'un seul fichier par partition. P>
Cela a fonctionné pour nous. Nous avons mis à l'échec notre système à 50 + milliards d'enregistrements et cela a fonctionné pour nous p>
Bonjour, je reçois cette erreur dans hive.log code> comme une sous-déclaration de nombreuses exceptions. Avons-nous besoin de redémarrer la machine exécutant le Hiveerver et / ou le métastore après la définition
ulimit code>?
C'est plus comme un commentaire qu'une vraie réponse.
J'ai vu cela avant d'où vous n'avez plus d'espace disque sur le nœud Tracker de la tâche exécutant la tâche (carte ou réduire). Quelle est la taille de votre cluster, et quel est l'espace libre disponible sur chaque nœud de cluster (sur la partition où mapred stocke les fichiers TEMP)