2017-07-06 1 views
2

J'utilise Pentaho Data Integration 7.1 pour copier des fichiers locaux sur un cluster Hadoop 2.8.0. J'ai créé une connexion Hadoop Cluster sur Pentaho et j'utilise une étape Hadoop Copy Files. Je peux télécharger avec succès les fichiers quand j'exécute mon travail à partir de l'interface graphique (spoon.sh), je peux voir la ligne suivante dans le journal:Différence de comportement dans un travail lors de l'exécution depuis la cuisine

Hadoop Copy Files - Processing row source File/folder source : [file:///home/etl/Desktop/users_full_20170620.csv] ... destination file/folder : [hdfs://hadoop:***@spark-master.cu:9000/value_iq]... wildcard : [null]

Mais lorsque je tente d'exécuter la même transformation à l'aide de la kitchen.sh échoue, je suis l'erreur suivante:

Hadoop Copy Files - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : Folder file:///value_iq/bin/kettle/data-integration_7.1/hdfs:/hadoop:[email protected]:9000/value_iq does not exist!

d'une certaine façon, il y a l'ajout du chemin où le kitchen.sh est situé en face de l'url HDFS, en supposant que les destinations locales est enviroment.

C'est une capture d'écran de mon Hadoop Copier étape Fichiers

This is a screenshot of my Hadoop Copy Files step

un rapport JIRA de ce bug a été créé: http://jira.pentaho.com/browse/PDI-16443

Répondre

0

It `s un problème avec la dépendance de l'interface utilisateur. Soumettre le cas jira s'il vous plaît sur http://jira.pentaho.com

+0

Merci, j'ai créé le problème de jira http://jira.pentaho.com/browse/PDI-16443 – Jose

+0

Aussi semble que d'abord vous essayez de copier avec cluster cluster hadoop mal configuré. Donc s'il vous plaît vérifiez si vous avez un dossier avec le nom "hdfs:" sous le fichier: ///value_iq/bin/kettle/data-integration_7.1/ S'il existe, supprimez-le. – Sedos

0

Pour autant que je peux voir PDI attend un fichier qui n'existe pas. Créez-le! Pour déplacer une solution PDI de dev à prod, elle fait référence aux références de fichiers. Au lieu de coder en dur le nom du dossier, appuyez sur Ctrl-space et sélectionnez ${Internal.Job.Filename.Directory} qui sera remplacé à l'exécution par le nom du répertoire contenant votre travail/transfo et qui est différent sur votre machine dev et votre environnement prod.

Vous pouvez configurer manuellement ces noms avant chaque UN: une liste de paramètres et de variables est affichée, parmi lesquels vous pouvez modifier {Internal.Job.Filename.Directory pour cette exécution.

Vous pouvez aussi (je vous conseille de le faire au début du processus de développement) définir vos propres variables. Dans le menu supérieur, Edit the kettle.properties et ajoutez my-dir. Il apparaîtra sur le Ctrl-space et le run options. Le fichier kettle.properties est stocké dans un répertoire caché nommé .kettle, et est différent sur votre machine dev et votre serer prod.

Vous allez très bientôt comment définir et modifier ces variables dans le travail et transfos avec Get variables et Set variable afin d'automatiser la charge avec des boucles. Un exemple peut être trouvé dans le répertoire sample qui a été livré avec votre distribution PDI.

+0

Merci pour votre réponse, oui je suis au courant de ces détails de production, mais le problème ici est différent, comme vous pouvez le voir, bouilloire ajoute un chemin local à une URL Hadoop (fichier: /// value_iq/bin/kettle/data-integration_7.1/hdfs:/hadoop: [email protected]: 9000/value_iq) qui est indépendant du système local puisqu'il existe dans un cluster distant. Et n'attend pas un fichier puisque l'erreur est liée à la destination qui est un dossier. – Jose

+0

Ensuite, ma réponse est comme @Sedos – AlainD

+0

Le mon avise est le même que [https://stackoverflow.com/users/1006572/sedos](Sedos), Rise l'affaire à Jira. – AlainD