Partage de technologie

Hadoop-23 Données Sqoop MySQL vers HDFS (partie) SQL génère des données Cluster HDFS Importation Sqoop jdbc ETL MapReduce

2024-07-12

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

Contenu du chapitre

Dans la section précédente, nous avons complété le contenu suivant :

  • Écrire un script SQL pour générer des données
  • Démarrez nos services dépendants : HDFS, Hive, YARN
  • Sqoop importe toutes les données dans Hive
  • Afficher l'état de MapReduce, afficher les résultats HDFS

Introduction au contexte

Voici trois serveurs cloud de réseau public, chacun 2C4G, créant un environnement d'apprentissage Hadoop que je peux apprendre.
Je l'ai déjà construit sur une machine virtuelle VM, mais je n'ai laissé aucune note. Cette fois, j'ai profité des trois machines que j'avais récupérées il y a quelques jours et j'ai rapidement essayé de le construire sur le réseau public. vis-Le.

  • 2C4G n°h121
  • 2C4G n° h122
  • 2C2G n°h123

Insérer la description de l'image ici

Précautions

Apache Sqoop 于 2021 年 6 月迁入 Attic。
La mission d'Apache Sqoop est de créer et de maintenir des logiciels de transfert de données à grande échelle liés à Apache Hadoop et au stockage de données structurées.
Même si le projet est peut-être dépassé, si vous disposez de suffisamment de temps, vous pouvez l’étudier correctement et il pourra peut-être vous être utile ! ! !

Importation partielle : --query

Exécuter le script

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

上述参数的解释:

  • La partie Where de l'instruction de requête doit contenir « $CONDITIONS »
  • Si des guillemets doubles sont utilisés après la requête, un symbole de transfert doit être ajouté avant $CONDITIONS pour empêcher le shell de penser qu'il s'agit de sa propre variable.

Missions

On peut observer que Sqoop démarre la tâche MapReduce
Insérer la description de l'image ici

En attente d'exécution

À ce stade, la tâche a commencé à être allouée Carte -> Réduire
Insérer la description de l'image ici

Voir les résultats

Vous pouvez voir que la tâche est terminée
Insérer la description de l'image ici

Importation partielle : spécifier les colonnes

Exécuter le script

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

上述参数的解释:

  • Si plusieurs colonnes sont impliquées dans des colonnes, séparez-les par des virgules et n'ajoutez pas d'espaces ! ! !

Missions

Conformément au contenu ci-dessus, le contenu répété ne sera pas inclus et seule une partie sera interceptée.
Insérer la description de l'image ici

Importation partielle : --where

Exécuter le script

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

Missions

Conformément à ce qui précède, le contenu, les résultats, etc. sont essentiellement répétés et ne seront pas supprimés.

Veuillez ajouter une description de l'image