Ursprünglicher abgeleiteter Befehl: bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info Ursachenanalyse: Im MySQL-Feld können Trennzeichen wie „\n“ vorhanden sein. Beim Import in Hive wird standardmäßig „n“ als Zeilenumbruch verwendet, was zu mehr Datensätzen in Hive führt. Lösung:Fügen Sie beim Importieren von Daten die Option --hive-drop-import-delims hinzu, um \n, \r und \01 im Feld zu löschen. Befehl zur endgültigen Ableitung: bin/sqoop import -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --hive-drop-import-delims --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info Siehe die offizielle Dokumentation: https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html Ergänzung: Fallstricke beim Importieren von MySQL-Daten von Sqoop nach Hive 1.sqoop-Import in HDFS1.1 Durch Ausführen des Sqoop-Jobs wird der letzte Wert automatisch aktualisiert # inkrementelles Sqoop-Importskript bin/sqoop job --create sqoop_hdfs_test02 --import \ --connect jdbc:mysql://localhost:3306/pactera_test \ --Benutzername root \ --password 123456 \ --Tabelle Student \ --target-dir /Benutzer/sqoop/test002/ \ --Felder-terminated-by "\t" \ --check-column zuletzt geändert \ --incremental zuletzt geändert \ --last-value "2018-12-12 00:03:00" \ --anhängen Hinweis: Der Parameter --append ist erforderlich, da sonst beim zweiten Ausführen des Jobs ein Fehler wie folgt gemeldet wird: An diesem Punkt wurde der Sqoop-Job erstellt! 2.Hive erstellt eine Tabelle und liest die von sqoop importierten Datenexterne Tabelle erstellen, falls nicht vorhanden: student_hive (SId int, Sname string, Sage string, Ssex string, last_modified Timestamp) Durch Zeilenformat getrennte Felder, abgeschlossen durch „\t“, Standort „hdfs://node01:8020/user/sqoop/test002/“; Hinweis: Das Zeitformat im Hive ist Zeitstempel. Wenn es auf Datum eingestellt ist, können DB-Daten nicht normal geladen werden. Der erste vollständige Ladevorgang ist abgeschlossen, die gesamte Route ist vollständig in Ordnung und die Hive-Tabelle kann Daten abfragen. -----------------------Wichtige Trennlinie----------------------- * Inkrementelles Laden im Sqoop-Lastmodified-Format speichert den letzten Wert als Systemzeit der Jobausführung. Wenn die Prüfspalte der Testdatenbank kleiner ist als die aktuelle Systemzeit (also der letzte Wert des vorherigen Jobs), werden die Daten nicht geladen. Wenn SId=6, wird es nicht geladen. Ändern Sie es daher zum Testen der Daten in die heutige Zeit (26.12.2018, 17:05), dann werden die Daten erfolgreich geladen! Joho! ! Zusammenfassen:Wenn Sie das Format „lastmodified“ für den inkrementellen Sqoop-Import verwenden, 1. Beachten Sie die Verwendung von --append; 2. Der letzte Wert ist die Systemzeit, zu der der Job ausgeführt wird. Stellen Sie beim Testen der Daten sicher, dass die Daten genau und selbsterhöhend sind. 3. Alles hat eine feste Nummer. Überprüfen Sie die Informationen und lokalisieren Sie die Probleme Ihres Systems genau Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
>>: HTML-Tutorial, HTML-Standardstil
Inhaltsverzeichnis 1. Warum ist JavaScript Single...
In diesem Artikelbeispiel wird der spezifische JS...
ausstellen Design Passwortstärke-Analyse Das Pass...
Dieser Artikel fasst die Prinzipien und die Verwe...
Inhaltsverzeichnis 1. Hintergrund 2. Was ist ein ...
Was das Problem betrifft, dass der strikte Modus ...
Mit den MySQL-Funktionen CAST() und CONVERT() kön...
Dieser Artikel wurde unter Bezugnahme auf die off...
Vorwort Durch das Hinzufügen einer Drag & Dro...
!DOCTYPE Gibt die Document Type Definition (DTD) ...
Hinweis: Es wird empfohlen, dass der Speicher der...
Ich bin kürzlich auf einen Fehler gestoßen, als i...
Inhaltsverzeichnis 1. DHCP-Dienst (Dynamic Host C...
1. Erstellen Sie eine Tabelle CREATE TABLE `stude...
Zunächst einmal: Was ist ein Schriftsymbol? Oberf...