首頁技術文章正文

如何將HDFS數(shù)據(jù)導出到MySQL中?

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

IT培訓班

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

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

1663926546119_111.jpg

圖1 表emp_export

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


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