首頁技術文章正文

如何將HDFS數據導出到MySQL中?

更新時間:2022-09-23 來源:黑馬程序員 瀏覽量:

IT培訓班

Sqoop導出與導入是相反的操作,也就是將HDFS、Hive、Hbase等文件系統或數據倉庫中的數據導出到關系型數據庫中,在導出操作之前,目標表必須存在于目標數據庫中,否則在執(zhí)行導出操作時會失敗。而Hive、Hbase的數據通常都是以文件的形式存儲在HDFS中,因此,本節(jié)就重點講解如何將HDFS數據導出到MySQL中。

為了方便操作,這里就將10.4.1小節(jié)中導入到HDFS上/sqoopresult目錄下的結果文件part-m-00000進行導出操作。首先在本地MySQL數據庫中(例如前面自定義的userdb數據庫)提前創(chuàng)建目標表結構,該表結構需要與HDFS中的源數據結構類型一致,具體emp_export.sql語句如文件所示。

文件 emp_export.sql

  DROP TABLE IF EXISTS `emp_export`;
  CREATE TABLE `emp_export` (
   `id` int(11) NOT NULL,
   `name` varchar(100) DEFAULT NULL,
   `deg` varchar(100) DEFAULT NULL,
   `salary` int(11) DEFAULT NULL,
   `dept` varchar(10) DEFAULT NULL,
   PRIMARY KEY (`id`)
  );

完成上面目標表emp_export的創(chuàng)建工作后,接下來就將HDFS上/sqoopresult目錄下的part-m-00000文件進行導出操作,具體指令示例如下。

$ sqoop export \

--connect jdbc:mysql://hadoop01:3306/userdb \

--username root \

--password 123456 \

--table emp_export \

**--export-dir /sqoopresult

執(zhí)行完指令后,進入MySQL數據庫,查看表emp_export的內容,如圖1所示。

1663926546119_111.jpg

圖1 表emp_export

從圖1可以看出,使用Sqoop成功將HDFS的數據導出到MySQL數據庫中。


分享到:
在線咨詢 我要報名
和我們在線交談!