1
votes

Créer une tâche d'importation Sqoop Hive

J'ai réussi une importation ad hoc d'une table oracle dans une table Hive à l'aide de Sqoop. Maintenant, je veux créer et enregistrer une tâche Sqoop avec les paramètres exacts que j'ai utilisés pour l'importation ad hoc.

Mais si je dis:

job sqoop --create myjob --import \ --connectez jdbc: mysql: //host.port/foo \ --username myUserName \ --password-file file: ///myfile.pwd \ --table mytable \ --create-hive-table \ --hive-import \ --hive-database my_hive_db \ --hive-table my_hive_table \ --fields-terminés par '|' \ --hive-drop-import-delims \ --m 1

J'obtiens une ERREUR:

19/03/05 14:56:41 ERREUR tool.BaseSqoopTool: Erreur lors de l'analyse des arguments pour le travail: 19/03/05 14:56:41 ERREUR tool.BaseSqoopTool: Argument non reconnu: --import 19/03/05 14:56:41 ERREUR tool.BaseSqoopTool: Argument non reconnu: --connect 19/03/05 14:56:41 ERREUR tool.BaseSqoopTool: Argument non reconnu: jdbc: mysql: @host: port / foo Si je supprime tous les \ cela ne fonctionne toujours pas.

Comment définir une tâche Sqoop avec tous les paramètres nécessaires à l'importation Hive?


0 commentaires

3 Réponses :


0
votes

Semble être un problème d'évasion bash. Il ne doit pas y avoir d'espace juste après les caractères de backslack "\" à la fin de la ligne. Vous pouvez voir les espaces supplémentaires avec:

cat -A sqoop_script.sh 


1 commentaires

Je ne sais pas s'il s'agit d'un espacement, mais dans ce cas, vous voudrez peut-être également vérifier le double espace avant --import, et envisagez d'abord de supprimer les sauts de ligne et les barres obliques et de tout mettre sur 1 ligne pour voir si la commande fonctionne de manière fonctionnelle.



0
votes

Je ne sais pas si l'exemple que vous fournissez est erroné, mais j'utilisais toujours une syntaxe légèrement différente où l'importation n'était pas un indicateur à l'intérieur d'un travail.

De documentation , ces 2 syntaxes me semblent familières:

sqoop import (generic-args) (import-args)
sqoop-import (generic-args) (import-args)

p >


0 commentaires

1
votes

Il vous manque espace entre - et import .

Essayez avec la syntaxe ci-dessous:

sqoop job --create myjob  -- import \
--connect jdbc:mysql://host.port/foo \
--username myUserName \
--password-file file:///myfile.pwd \
--table mytable \
--create-hive-table \
--hive-import \
--hive-database my_hive_db \
--hive-table my_hive_table \
--fields-terminated-by '|' \
--hive-drop-import-delims \
--m 1 


0 commentaires