Sqoop從關係型資料庫往HDFS上匯入及匯出檔案
阿新 • • 發佈:2020-01-23
將關係型資料庫(RDBMS)匯入到HDFS 關係型資料庫(RDBMS)匯入到Hive
sqoop引數筆記沒有 (pdf格式的)
安裝的時候需要在lib下面放mysql的jar包,才能跟mysql有關聯
sqoop連線mysql命令(只有防火牆關閉之後才能連線上mysql)
匯入 關係型資料庫匯入到非關係型資料庫
1.1、將mysql資料庫的內容傳進hdfs
./sqoop import --connect jdbc:mysql://node52:3306/1705A --username root --password root --table t_stu --target-dir /sqoop/test --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"
2.1、按照條件查詢 沒有--table 目錄換了,是新的目錄test2 之後結束之後要加 $CONDITIONS; (最後有分號)
./sqoop import --connect jdbc:mysql://192.168.224.132:3306/vmware --username root --password root --target-dir /sqoop/test2 --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --query 'select * from student where id>=2 and $CONDITIONS;'
2.2、另外一種條件查詢方式(最後query去掉;改成 --table 後面加條件)
./sqoop import --connect jdbc:mysql://192.168.224.132:3306/vmware --username root --password root --target-dir /sqoop/test3 --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --table student --where "id<2"
2.3、光匯出 id 這一列 (匯入指定的列)
./sqoop import --connect jdbc:mysql://192.168.224.132:3306/vmware --username root --password root --target-dir /sqoop/test4 --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --table student --columns id
3.1、檢視hadoop上面的資訊
hadoop fs -cat
匯出 非關係型資料庫匯出到關係型資料庫
1、建立一個和hdfs資料一致的表結構
2、匯入到資料庫的命令
./sqoop export --connect jdbc:mysql://192.168.224.132:3306/vmware --username root --password root --export-dir /sqoop/test/part-m-00000 --table student2 --num-mappers 2 --input-fields-terminated-by "\t"
--split-by id 以id切割
--null-string "*" 空字串以 * 號代替
--null-non-string 非空字串以 * 號代替
![](https://796t.com/res/2020/01-23/15/75e5ecdc72bec6e54346a05d74c7aead.jpg)
![](https://796t.com/res/2020/01-23/15/869397f80532b62b0240b60ed5def0dd.jpg)
![](https://796t.com/res/2020/01-23/15/57eb1f29bc40446038d5b2e34097e348.jpg)