SQOOP入門

SQOOP入門

★ SQOOP入門

Sqoop提供的命令可以把RDMS管理的數據庫中的數據導入到HDFS中或者Hive倉庫中。

    也提供了命令可以把HDFS中的數據導入到Mysql等REMS數據庫中。

 

★ SQOOP安裝

Sqoop依賴於Hadoop平臺的Hdfs存儲和MapReduce計算。

所以,安裝Sqoop之前,需要安裝好Hadoop。

1:解壓、設置環境變量略。

2:把Mysql的驅動jar包,放到$SQOOP_HOME/lib目錄下。

3:啓動Hadoop

4:進入$SQOOP_HOME/bin目錄下。執行下面的命令。

★ Mysql到HDFS存儲

1:--導出到多個文件中。把數據庫中的數據分散在多個文件中保存

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ',';

 

2:--導入到一個文件中,-m指定用一個Map。在不加 --apend的情況下,第二次執行該導入會提示HDFS中文件已存在。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1;

 

3:--每次執行,都會新創建一個文件。原來的HDFS中的文件還在HDFS中。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --append ;

 

★ Mysql到HIVE倉庫

1:--沒有用-m指定用一個Map。導出文件保存在了Hive倉庫中。保存到倉庫中幾個分散的文件中。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by','  --hive-import;

 

2:--導入到一個文件中,-m指定用一個Map。導出文件保存在了Hive倉庫中。每次執行都會把庫中的所有數據保存到一個新的Hive倉庫中的一個備份文件中。

sqoop import --connect jdbc:mysql://hadoop5:3306/test--username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import;

 

3:--導入到一個文件中,-m指定用一個Map。導出文件保存在了Hive倉庫中。每次保存都會在數據倉庫中保存一個新的備份。全部數據。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import --append;

 

4:--導入到一個文件中,-m指定用一個Map。導出文件保存在了Hive倉庫中。每次導出都會保存到一個單獨的文件中,保存的時候,只保存增量。如果沒有增量,則生成一個新文件。裏邊沒有內容。

sqoop import --connectjdbc:mysql://hadoop5:3306/test --username root --password root

--table persons --fields-terminated-by ','-m 1 --hive-import --append

--check-column 'id' --incremental append--last-value 6;

 

 

★ HDFS到Mysql

在數據庫中建表:

/*DDL 信息*/------------

 

CREATE TABLE `people` (

 `id` int(10) NOT NULL,

 `name` varchar(20) DEFAULT NULL,

 `age` int(10) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1

 

在HDFS中準備文件:

 

文件內容如下:

1,baidu,4

2,sohu,40

3,xiaomi,20

4,alibaba,108

5,taobao,29

6,tmall,32

 

導出數據到Mysql中剛纔建的表中

[root@hadoop5 bin]# pwd

/usr/local/sqoop/bin

 

執行命令:

sqoop export --connectjdbc:mysql://hadoop5:3306/test --username root --password root --table people --fields-terminated-by',' --export-dir '/exppersons'

上句命令表示:把HDFS中的文件內容導入到Mysql中。

導入文件位於/exppersons文件夾中。

導入到test數據庫中的people表中。要求表已經生成。

 

 

★ Sqoop的Job管理

創建一個新的Job:

sqoop job --create ajob -- import --connectjdbc:mysql://hadoop5:3306/test --username root --password root --table persons--fields-terminated-by ',' -m 1 --hive-import;

 

查看所有的可用的Job:

sqoop job --list

 

刪除一個Job

sqoop job --delete

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章