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?
3 Réponses :
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
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.
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 >
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