1. 程式人生 > >Sqoop資料ETL工具(九)

Sqoop資料ETL工具(九)

19.9 使用Sqoop將資料匯入MySQL

要求:

MySQL服務啟動且執行正常,命令為:

[[email protected] ~]$ /etc/init.d/mysqld status

Hadoop叢集啟動且執行正常,命令為:

[[email protected] ~]$ jps

將前面生成的實時資料從HDFS匯入到MySQL中,步驟如下:

以下操作都是在MySQL互動客戶端執行。

(1)登入MySQL

mysql -uhadoop -phadoop

(2)建立資料庫

檢視test資料庫是否存在:

show databases;

如果不存在就建立:

create database test;

(2)建立表

create TABLE `test`.`uid_cnt`

(`ts` varchar(255) DEFAULT NULL,

`uid` varchar(255) DEFAULT NULL,

`keyword` varchar(255) DEFAULT NULL,

`rank` int(11) DEFAULT NULL,`ord` int(11) DEFAULT NULL,

`url` varchar(255) DEFAULT NULL) 

ENGINE=InnoDB DEFAULT CHARSET=utf8;

提示:語句中的引號是反引號`,不是單引號’。

建立成功後,退出MySQL。

(3)匯入資料

進入sqoop安裝主目錄:

[[email protected] ~]$ cd /home/zkpk/sqoop-1.4.5.bin__hadoop-2.0.4-alpha

匯入命令:

[[email protected] sqoop-1.4.5.bin__hadoop-2.0.4-alpha]$ 

bin/sqoop export --connect jdbc:mysql://192.168.204.135:3306/test --username hadoop --password hadoop --table uid_cnt --export-dir '/sogou/sogou.100h'  --fields-terminated-by '\t'

 

注意:紅色IP部分需要使用HadoopMaster節點對應的IP地址

程式碼解釋:

bin/sqoop export   ##表示資料從hive複製到mysql中\

--connect jdbc:mysql://192.168.1.113:3306/test \

--username root \

--password admin \

--table bb   ##mysql中的表,即將被匯入的表名稱 \

--export-dir '/user/hive/warehouse/sogou.db/uid_cnt'   ##hive中被匯出的檔案 \

--fields-terminated-by '\t'    ##hive中被匯出的檔案欄位的分隔符

 

(4)匯出資料

 

# 匯入HDFS

 

bin/sqoop import --connect jdbc:mysql://192.168.204.135:3306/test --username hadoop --password hadoop  --table uid_cnt -m 1

 

hadoop fs -cat /user/zkpk/uid_cnt/part-m-00000(預設到/user/zkpk)