Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/08/2011, 11h33   #1
Invité de passage
 
Inscription : août 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Par défaut Dépassement de mémoire Talend

Bonjour,

Je suis en stage et complètement débutante sur Talend.
J'ai trois input pour un tMap et j'ai un dépassement de mémoire.
Une des trois entrées fait 6 millions de lignes, mais l'exécution bloque à 185 000.

J'ai un peu lu les sujets en rapport avec mon problème mais je ne comprends pas toujours les solutions apportées et ce que j'ai essayé ne fonctionne pas (modifier le fichier de configuration, modifier le nombre max de lignes du tMap).

Merci d'avance pour votre aide.
tolosane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 11h41   #2
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Est ce que tu as essayé ceci :

http://business-intelligence.develop...V#memoire_tmap ?
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 11h54   #3
Invité de passage
 
Inscription : août 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Citation:
Lors d'un traitement important de données dans un tMap avec un ou plusieurs lookup il convient de sélectionner l'option "Store on disk" du lookup à l'intérieur du tMap. Pour éviter les problèmes de mémoire (Java Heap Space). Pour cela cliquez sur le bouton qui ressemble à un disque dur gris dans l'entrée qui correspond aux lookup. Puis fermer le tMap en appuyant sur "OK".
Merci pour ta réponse.
J'avais déjà sélectionné l'option "store on disk" oui. Mais ça ne marche toujours pas.
tolosane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 12h10   #4
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Est ce que tu peux poster l'exception générée par Talend ?
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 12h13   #5
Invité de passage
 
Inscription : août 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Alors en modifiant le -xms dans les préférences et pas directement dans le fichier de config, ça me génère une erreur qui n'est plus un dépassement de mémoire. Et ça bloque à 280 000 lignes au lieu de 185 000.

Citation:
Exception in component
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
at routines.system.RunStat.sendMessages(RunStat.java:248)
at routines.system.RunStat.stopThreadStat(RunStat.java:225)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_3Process(archivage_SIPIJGHD.java:10631)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:3392)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.runJobInTOS(archivage_SIPIJGHD.java:10851)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.main(archivage_SIPIJGHD.java:10677)

Edit : Je l'ai relancé sans rien changer et l'erreur n'est pas tout à fait la même. On revient sur un dépassement mémoire. Mais je ne peux pas augmenter plus le -xms car Talend me dit que la machine virtelle Java prend trop de place.

Exception in thread "Thread-0" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
[statistics] disconnected
[statistics] disconnected
at routines.system.RunStat.sendMessages(RunStat.java:248)
at routines.system.RunStat.run(RunStat.java:212)
at java.lang.Thread.run(Unknown Source)
Exception in thread "main" java.lang.Error: java.lang.Error: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:5372)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.runJobInTOS(archivage_SIPIJGHD.java:10851)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.main(archivage_SIPIJGHD.java:10677)
Caused by: java.lang.Error: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_3Process(archivage_SIPIJGHD.java:10632)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:3392)
... 2 more
Caused by: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_3Process(archivage_SIPIJGHD.java:10309)
... 3 more
tolosane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h11   #6
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Salut,
Apparemment ton exception ( la première ) a un rapport avec ce problème cité dans cette discussion :

http://www.developpez.net/forums/d10...on-linkedlist/

Sinon pour la deuxième c'est un problème de mémoire.

A mon avis avant de faire une modification sur ton job ou bien de prendre n'importe qu'elle autre décision tu pourrais le tester sur une machine plus puissante pour s'assurer que ce n'est pas un problème de mémoire, parceque 6 millions de lignes c'est trop à gérer par une machine à 2 ou 3 Go de mémoire RAM.

Sinon je ne sais pas si tu peux faire le traitement par lots, càd traiter les 1000 premières lignes, puis les 1000 suivantes, etc...

Finalement tu pourrais aussi essayer de sauvegarder les lignes dans un fichier Tampon, ceci est possible avec Talend, assure toi juste qu'il y a assez d'espace disque dûr.

Bonne chance.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h22   #7
Invité de passage
 
Inscription : août 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Merci pour ton aide je vais essayer quelques trucs.
Je ne peux pas faire un traitement par lot car je dois vérifier l'intégralité des 6millions de lignes pour chaque ligne d'une autre table. Je crois que je vais enlever la contrainte liée à la table lourde, c'est juste pour modéliser un traitement mais mon stage se termine demain et je ne pense pas avoir le temps de traiter ce problème donc ils se débrouilleront après ^^

Merci encore !
tolosane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 14h11   #8
Invité de passage
 
Inscription : août 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 9
Points : 0
Points : 0
Je sais que ce n'est plus trop en rapport avec le post, mais j'ai supprimé le problème (en supprimant l'input sur la table la plus lourde), et j'ai maintenant cette erreur qui intervient :

Citation:
Exception in component tOracleOutput_1
java.sql.BatchUpdateException: ORA-00904: "ORIGIN" : identificateur non valide

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:629)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9409)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:211)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:6175)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.runJobInTOS(archivage_SIPIJGHD.java:8630)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.main(archivage_SIPIJGHD.java:8456)
En fait il marque une erreur au commit, et je ne sais pas d'où ça vient.
tolosane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 14h32   #9
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
C'est une exception Oracle qui te dit que l'identifiant 'ORIGIN' n'est pas présente dans ta BD.
Soit c'est une table, colonne, etc...

Est ce que dans ton job tu as une colonne 'ORIGIN' que tu essaies d'alimenter ou bien de lire depuis la BD, si oui essaie de voir si elle existe vraiment dans la BD.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 22h25   #10
Membre habitué
 
Homme Rémy DUBOIS
Ingénieur développement logiciels
Inscription : août 2008
Messages : 88
Détails du profil
Informations personnelles :
Nom : Homme Rémy DUBOIS
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2008
Messages : 88
Points : 126
Points : 126
Pour les personnes rencontrant le même problème:

Citation:
Exception in thread "Thread-0" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
[statistics] disconnected
[statistics] disconnected
at routines.system.RunStat.sendMessages(RunStat.java:248)
at routines.system.RunStat.run(RunStat.java:212)
at java.lang.Thread.run(Unknown Source)
Exception in thread "main" java.lang.Error: java.lang.Error: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:5372)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.runJobInTOS(archivage_SIPIJGHD.java:10851)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.main(archivage_SIPIJGHD.java:10677)
Caused by: java.lang.Error: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_3Process(archivage_SIPIJGHD.java:10632)
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_1Process(archivage_SIPIJGHD.java:3392)
... 2 more
Caused by: java.lang.OutOfMemoryError: Java heap space
at archivage_ij.archivage_sipijghd_0_1.archivage_SIPIJGHD.tOracleInput_3Process(archivage_SIPIJGHD.java:10309)
... 3 more
Cette erreur provient d'un problème d'accès concurrent au niveau du thread gérant les statistiques temps réel.
Un workaround serait de désactiver les statistiques à l’exécution.

Rémy.
rdubois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h39.


 
 
 
 
Partenaires

Hébergement Web