7
votes

SQOOP HIVE Extrait avec Statut 1

Lorsque j'exécute:

13/04/21 16:42:50 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:364)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:314)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:226)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)


3 commentaires

Veuillez partager la sortie du journal complet généré avec le paramètre -verbose.


Veuillez trouver le journal ici: Pastpin


... quelques autres informations: Exporter de MySQL directement sur HDFS Works sans problèmes, ce n'est que lorsque j'essaie d'exporter à la ruche que j'obtiens cette erreur. Donc, mon sentiment est que cela n'a rien à voir avec le pilote MySQL manquant ou des droits insuffisants sur la table MySQL.


4 Réponses :


0
votes

Il peut y avoir un problème d'autorisation pour la table MySQL ou vous manquez MySQL Connector Jar à Hive Lib. S'il vous plaît partager une sortie complète de la commande


1 commentaires

Merci pour votre réponse. Veuillez trouver l'extrait de journal ici: Pastebin.com/hrmziygh . Je peux exporter vers HDFS sans problèmes, juste pour ne pas courir, le problème n'est donc pas avec un pilote manquant ou des autorisations MySQL.



10
votes

Basé sur le journal, il semble que vous frappez après une exception suivante:

13/04/22 18:34:44 info hive.hiveimport: exception dans le fil "Main" Java.lang.noschmethoderror: org.apache.thrift.encodingutils.setbit (biz) b

J'ai déjà vu cette question lorsque les utilisateurs utilisaient HBASE et HIVE dans des versions "incompatibles". L'incompatibilité peut être généralement à plusieurs niveaux, mais celle-ci est en particulier lorsque HBASE et HIVE utilisent différentes versions de l'épargne. Comme SQOP ajoute à la fois HBASE et HIVE BOARS à la classe de classe, une seule version de l'épargne peut être active et donc le "deuxième" outil (généralement la ruche) ne fonctionne pas correctement.

Avez-vous par hasard installé à la fois HBASE et HIVE sur la boîte où vous exécutez SQOP? Si oui, pouvez-vous vérifier la version de l'épargne que chaque projet utilise? Juste chercher "* Thrift * .jar". Si la réponse aux deux questions est positive, vous pouvez éventuellement définir HBASE_HOME à quelque chose de non-existant pour forcer SQOOOP ne chargez pas la version de l'épargne de HBASE.


2 commentaires

Merci beaucoup pour votre aide! Oui, j'ai à la fois HBASE et HIVE mis en place sur mon environnement de développement local. Ma recherche a révélé que la HBASE-0.94.6.1 utilise LibthrifT-0.8.0.jar, tandis que Hive-0.10.0 utilise Libthrift-0.9.0.jar. Selon votre recommandation, j'ai défini HBase_Home sur un chemin non existant et ... excellent, maintenant tout fonctionne! Merci beaucoup à nouveau pour votre aide massive!


Puis-je savoir comment puis-je définir HBase_Home sur un chemin non existant?



0
votes

J'ai fait face à la même erreur, cela serait définitivement lié à LibthrifT-0.8.0.jar et à Libthrift-0.9.0.jar dans HBASE et HIVE respectivement. Donc, j'ai simplement signalé mon emplacement Hbase_Home à un emplacement inconnu et exécuté ma bash. Elle va bien.

Mais voici un problème que je suis confronté à la ruche est le tableau que j'ai essayé d'importer, ce qui est échoué maintenant que le tableau est déjà sorti, mais ce n'est pas le cas. Je suppose que les fichiers métastore db auraient déjà écrit! Donc, il vous hapendait pour changer le nom de la table et refaire la commande au cas où nous ne voulions pas supprimer le dossier total de métastoredb.


0 commentaires

2
votes

Je suis d'accord avec la réponse de Jarek Jarcec Cecho.

Une autre solution consiste à copier libhrift * .jar fichier de $ hive_home / lib à $ sqoop_home / lib . .


0 commentaires