一、概述
- sqoop是Apache 提供的工具,用於hdfs和關係型數據庫之間數據的導入和導入
- 可以從hdfs導出數據到關係型數據庫,也可以從關係型數據庫導入數據到hdfs
二、實現步驟:
- 準備sqoop安裝包,官網地址:http://sqoop.apache.org
- 配置jdk環境變量和Hadoop的環境變量。因爲sqoop在使用是會去找環境變量對應的路徑,從而完整工作
- 解壓Sqoop的安裝包
- 需要將要連接的數據庫的驅動包加入sqoop的lib目錄下(本例中用的是mysql數據庫)
- 利用指令操作sqoop
三、基礎指令
說明 | 指令示例 |
---|---|
查看mysql所有數據庫 | sh sqoop list-databases --connect jdbc:mysql://192.168.199.13:3306/ -username root -password 123456 |
查看指定數據庫下的所有表 | sh sqoop list-tables --connect jdbc:mysql://hadoop03:3306/hive -username root -password 123456 |
關係型數據庫 ->hdfs | 實現步驟: 1. 先在mysql數據庫的test數據下建立一張tabx表,並插入測試數據 建表:create table tabx (id int,name varchar(20)); 插入:insert into tabx (id,name) values (1,‘aaa’),(2,‘bbb’),(3,‘ccc’),(1,‘ddd’),(2,‘eee’),(3,‘fff’); 2. 進入到sqoop的bin目錄下,執行導入語句:sh sqoop import --connect jdbc:mysql://192.168.150.138:3306/test --username root --password root --table tabx --target-dir ‘/sqoop/tabx’ --fields-terminated-by ’ |
hdfs ->關係型數據庫 | 執行:sh sqoop export --connect jdbc:mysql://192.168.199.13:3306/test --username root --password root --export-dir ‘/sqoop/tabx/part-m-00000’ --table taby -m 1 --fields-terminated-by '|' 注:sqoop只能導出數據,不能自動建表。所以在導出之前,要現在mysql數據庫裏建好對應的表 |
sh sqoop import -help | 查看import的幫助指令 |