技術共有

Hadoop-23 Sqoop データ MySQL から HDFS へ (部分) SQL がデータを生成 HDFS クラスター Sqoop インポート jdbc ETL MapReduce

2024-07-12

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

章の内容

前のセクションでは、次のコンテンツを完成させました。

  • データを生成する SQL スクリプトを作成する
  • 依存サービスを開始します: HDFS、Hive、YARN
  • Sqoop はすべてのデータを Hive にインポートします
  • MapReduce ステータスの表示、HDFS 結果の表示

背景の紹介

ここに 3 つのパブリック ネットワーク クラウド サーバー (それぞれ 2C4G) があり、私が学習するための Hadoop 学習環境を構築しています。
以前に一度VM仮想マシン上に構築したことがありますが、メモを残していなかったので、今回は数日前に手に入れた3台のマシンを利用して、急いでパブリックネットワーク上に構築してみました。それを体験してください。

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

ここに画像の説明を挿入します

予防

Apache Sqoop 于 2021 年 6 月迁入 Attic。
Apache Sqoop の使命は、Apache Hadoop および構造化データ ストレージに関連する大規模なデータ転送ソフトウェアを作成および保守することです。
プロジェクトは古いかもしれませんが、時間が十分にある場合は、きちんと勉強して、役立つかもしれません。 ! !

部分インポート: --query

スクリプトを実行する

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

上述参数的解释:

  • クエリ ステートメントの where 部分には '$CONDITIONS' が含まれている必要があります
  • クエリの後に二重引用符が使用されている場合は、シェルがそれを独自の変数であると認識しないように、$CONDITIONS の前に転送記号を追加する必要があります。

課題

Sqoop が MapReduce タスクを開始することがわかります。
ここに画像の説明を挿入します

実行を待っています

この時点でタスクの割り当てが開始されます。 Map -> Reduce
ここに画像の説明を挿入します

結果を見る

タスクが完了したことがわかります
ここに画像の説明を挿入します

部分インポート: 列を指定します

スクリプトを実行する

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

上述参数的解释:

  • 列に複数の列が含まれる場合は、カンマで区切ってスペースを追加しないでください。 ! !

課題

上記のコンテンツと同様に、繰り返されるコンテンツは含まれず、一部のみがインターセプトされます。
ここに画像の説明を挿入します

部分インポート: --where

スクリプトを実行する

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

課題

上記と同様、内容、結果等は基本的に繰り返し掲載し、削除することはございません。

画像の説明を追加してください