sqoop(發音:skup)是一款開源的工具,主要用於在hadoop(hive)與傳統的資料庫(mysql、postgresql…)間進行資料的傳遞,可以將乙個關係型資料庫(例如 : mysql ,oracle ,postgres等)中的資料導進到hadoop的hdfs中,也可以將hdfs的資料導進到關係型資料庫中。
sqoop是乙個工具是可以單機執行的,只需要啟動hdfs、yarn(sqoop底層是執行mapreduce程式,所以要啟動yarn)和mysql,安裝上sqoop就可以實現了。執行下面命令將mysql中的資料匯入到hdfs
執行時控制台會列印出我們熟悉的mapreduce程式執行過程,執行後可以到hdfs的檔案管理介面看到這樣的目錄sqoop
import--
connect
jdbc:mysql://192
.168.1
.112:3306/ecshop--
username
root--
password
root--
table
ecs_account_log#-
-connect
[mysql連線位址和database]-
-username
[使用者名稱]-
-password[密碼
]--table[表名
]
/user/你的登陸使用者名稱/表明
以上是比較簡單的語句,我們還可以自定義很多東西實現我們的需求
.
/sqoop
import--
connect
jdbc:mysql://192
.168.1
.112:3306/ecshop--
username
root--
password
root--
table
ecs_account_log--
target
-dir
/sqoop/td4-m
2--fields
-terminated-by
'\t'--
columns
"log_id
,user_id
,user_money"--
target
-dir
[輸出路徑]-
m[map任務個數]-
-fields
-terminated-by
[以什麼分割]#
--columns
[獲取哪些列
]
.
/sqoop
import--
connect
jdbc:mysql://192
.168.1
.112:3306/ecshop--
username
root--
password
root--
table
ecs_account_log--
target
-dir
/sqoop/td5-m
2--fields
-terminated-by
'\t'--
where
'log_id > 2'#-
-where[條件
]
.
/sqoop
import--
connect
jdbc:mysql://192
.168.1
.112:3306/ecshop--
username
root--
password
root--
query
'select
*from
ecs_account_log
where
log_id > 5
and$conditions'-
-split-by
log_id--
target
-dir
/sqoop/td6-m
2#--
query
[自定義查詢語句]-
-split-by
[指定分隔引數
,通常使用主鍵id
]注意當你使用--
query時-m
不為1map任務不為1時就要指定--
split
-by引數了
sqoop資料遷移工具
注 為了表達清晰做了換行,執行時請放在一行中,使用空格隔開,或者加 進行行連線 在profiles中新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 sqoop import connect jdbc mysql username root password 123 ...
字段型別 sqoop 資料遷移工具Sqoop
熬過去,出眾。熬不過,出局。這是最真實的人生,人都是熬過來的。sqoop 是乙個用來將hadoop和關係型資料庫中的資料相互轉移的工具,它是hadoop環境下連線關聯式資料庫與hadoop儲存系統的橋梁,支援多種關係型資料來源和hive hdfs hbase的相互匯入。支援全表匯入,也支援增量資料匯...
sqoop資料遷移
sqoop list databases connect jdbc mysql hadoop1 3306 username root password rootsqoop list tables connect jdbc mysql hadoop1 3306 test username root p...