Technologieaustausch

Hadoop-23 Sqoop-Daten MySQL zu HDFS (Teil) SQL generiert Daten HDFS-Cluster Sqoop-Import JDBC ETL MapReduce

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inhalt des Kapitels

Im vorherigen Abschnitt haben wir den folgenden Inhalt vervollständigt:

  • Schreiben Sie ein SQL-Skript, um Daten zu generieren
  • Starten Sie unsere abhängigen Dienste: HDFS, Hive, YARN
  • Sqoop importiert alle Daten in Hive
  • MapReduce-Status anzeigen, HDFS-Ergebnisse anzeigen

Hintergrundeinführung

Hier sind drei öffentliche Netzwerk-Cloud-Server, jeweils 2C4G, die eine Hadoop-Lernumgebung für mich zum Lernen aufbauen.
Ich habe es schon einmal auf einer virtuellen VM-Maschine erstellt, aber dieses Mal habe ich die drei Maschinen, die ich in den letzten Tagen gesammelt hatte, genutzt und schnell versucht, es im öffentlichen Netzwerk zu erstellen erlebe es.

  • 2C4G Nr. h121
  • 2C4G Nr. h122
  • 2C2G Nr.h123

Fügen Sie hier eine Bildbeschreibung ein

Vorsichtsmaßnahmen

Apache Sqoop 于 2021 年 6 月迁入 Attic。
Die Mission von Apache Sqoop besteht darin, umfangreiche Datenübertragungssoftware im Zusammenhang mit Apache Hadoop und strukturierter Datenspeicherung zu erstellen und zu warten.
Obwohl das Projekt möglicherweise veraltet ist, können Sie es gründlich studieren, wenn Sie genügend Zeit haben, und es kann Ihnen hilfreich sein! ! !

Teilweiser Import: --query

Skript ausführen

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--append 
-m 1 
--fields-terminated-by "t" 
--query 'select gname, serialNumber, price, stock_number,
create_time from goodtbl where price>88 and $CONDITIONS;'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上述参数的解释:

  • Der Where-Teil der Abfrageanweisung muss „$CONDITIONS“ enthalten.
  • Wenn nach der Abfrage doppelte Anführungszeichen verwendet werden, muss vor $CONDITIONS ein Übertragungssymbol hinzugefügt werden, um zu verhindern, dass die Shell denkt, es handele sich um eine eigene Variable.

Zuordnungen

Es ist zu beobachten, dass Sqoop die MapReduce-Aufgabe startet
Fügen Sie hier eine Bildbeschreibung ein

Warten auf die Hinrichtung

Zu diesem Zeitpunkt wurde mit der Zuweisung der Aufgabe Map -> Reduce begonnen
Fügen Sie hier eine Bildbeschreibung ein

Ergebnisse anzeigen

Sie können sehen, dass die Aufgabe abgeschlossen ist
Fügen Sie hier eine Bildbeschreibung ein

Teilimport: Spalten angeben

Skript ausführen

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--delete-target-dir 
--num-mappers 1 
--fields-terminated-by "t" 
--columns gname,serialNumber,price 
--table goodtbl
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上述参数的解释:

  • Wenn es sich bei Spalten um mehrere Spalten handelt, trennen Sie diese durch Kommas und fügen Sie keine Leerzeichen hinzu! ! !

Zuordnungen

In Übereinstimmung mit dem oben genannten Inhalt werden die wiederholten Inhalte nicht einbezogen und nur ein Teil abgefangen.
Fügen Sie hier eine Bildbeschreibung ein

Teilimport: --where

Skript ausführen

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--delete-target-dir 
-m 1 
--fields-terminated-by "t" 
--table goodtbl 
--where "price>=68"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Zuordnungen

In Übereinstimmung mit dem Vorstehenden werden die Inhalte, Ergebnisse usw. grundsätzlich wiederholt und nicht gelöscht.

Bitte fügen Sie eine Bildbeschreibung hinzu