一.安裝SQOOP後可以使用以下命令列出mysql數據庫中的全部數據庫,與檢驗是否安裝成功。
# sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456mysql
二. hive與mysql數據互導sql
一. 使用命令範例:數據庫
參數詳解:app
1.--fields-terminated-by '\t',表示將數據導入到hadoop中列記錄之間的間隔符,默認符號爲英文逗號。這裏一般使用製表符\t來間隔數據,避免數據再次從HDFS到入到關係數據庫時引發分割混亂
2.-m 1,是--num-mappers的縮寫,表示指定MapReduce的個數爲1個(默認會自動開啓多個),sqoop轉化的MR程 序不包含reduce
3.--append,表示數據導入到hadoop的方式爲追加,不然不容許重複導入
4.--check-column '主鍵列名' --incremental append --last-value 5,表示數據爲增量導入,根據--last-value的值來判斷,有大於這個值的記錄則執行導入,不然不執行導入操做
5.表示數據爲增量導入,根據--last-value的值來判斷, 有大於這個值的記錄則執行導入,不然不執行導入操做
6.--hive-import,表示將數據導入到Hive中;
7.--where '',數據篩選條件
8.-e 或--query 'select * from table where id>5 and $CONDITIONS',自定義導入數據的sql語句。使用自定義sql語句 須要注意:
① 使用了自定義sql就不能指定--table;
② 自定義sql語句的where條件中必須包含字符串"$CONDITIONS",$CONDITIONS是一個變量,用於給多個map任務劃分任務範 圍;
③ 使用自定義sql時,若是經過參數-m指定多個map任務,因爲自定義sql中可能存在多表查詢,所以必須使用參數「--split-by 表名.字段名」指定多個map任務分割數據的根據字段,如--split-by users.id;
9. --target-dir,顯示指定數據導入到HDFS中的位置,默認保存路徑爲:/user/{當前用戶}/{表名}/表數據文件,
若是導入時須要將已存在的HDFS文件刪除,可以使用--delete-target-diroop
二. hive數據導入導出數據到mysql hadoop
三.mysql數據庫數據導入hive中rem
三.hbase與關係型數據庫數據互導
從Mysql導入到Hbase中
參數說明:
test 爲mysql中要傳入到hbase表中的表名。
mysql_sqoop_test 傳入hbase中的表名
--column-family hbase表中的列族
--hbase-row-key 在hbase中那一列做爲rowkey
使用範例:字符串