sqoop的本質?
將sqoop的語句轉換成mapreduce來進行資料遷移(多數為maptask)。
sqoop的命令
import:將結構資料庫中的資料匯入到hdfs中
export:將hadoop中的資料匯出到關聯式資料庫
關係型資料庫<----->hdfs
關係型資料庫----->hive、hbase
sqoop安裝
1.解壓配置環境變數
2.配置檔案
sqoop-env.sh
//hadoop安裝目錄
export hadoop_common_home=
export hadoop_mapred_home=
//hive安裝目錄
export hive_home=
//配置zookeeper
export zoocfgdir=
sqoop-site.xml不用配置即可
3.mysql驅動包cp到sqoop的安裝目錄下的lib下面
4.測試執行
sqoop version
sqoop help
sqoop的語句//參考文件
原則上是寫在一行,但是可以用\表示該行未結束。
1.連線到mysql
sqoop list-databases -connect jdbc:mysql://mini1:3306 \
--username root --password root \
;
2.import匯入(匯入所有列)sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root \
--table aa -m 1 \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--target-dir /sqo/01 \
;//aaa 是表名字 -m是用m個map task去並行執行
//--target-dir 指定匯入到hdfs的路徑
3.import匯入(匯入某些列)sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root \
--table aa -m 1 \
--columns 'name' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--target-dir /sqo/03 \
;//加上 --columns
4.import匯入到hive表sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root \
--table aa -m 1 \
--columns 'name' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--create-hive-table --hive-import --hive-overwrite \
--hive-table olqf.sqo --delete-target-dir \
;
4.import指定where匯入sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root \
--table aa -m 1 \
--columns 'id,name' \
--where 'id>2' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--target-dir /sqo/03 --delete-target-dir \
;
5.import指定query匯入//query替換table、column、where條件
//conditions結束符號
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root -m 1 \
--query 'select id,name from aa where id>2 and $conditions' \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--target-dir /sqo/04 --delete-target-dir \
;
6.import指定split-by來匯入//平分成m部分
sqoop import -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root -m 2 \
--table aa \
--split-by id \
--fields-terminated-by '\t' --lines-terminated-by '\n' \
--null-string '\\n' --null-non-string '\\n' \
--target-dir /sqo/05 --delete-target-dir \
;
匯出到mysql中//update-mode 更新模式 updateonly | allowinsert
sqoop export -connect jdbc:mysql://mini1:3306/test \
--driver com.mysql.jdbc.driver \
--username root --password root --table aa2 -m 1 \
--export-dir '/sqo/02' \
--input-fields-terminated-by '\t' --input-lines-terminated-by '\n' \
--input-null-string '\\n' --input-null-non-string '\\n' \
;
sqoop匯入匯出
sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...
sqoop匯入 匯出
全部匯入 sqoop import connect jdbc mysql hadoop01 3306 test1 username root password 1234 table students target dir user test1 delete target dir fields ter...
sqoop安裝與匯入匯出資料
安裝在一台節點上就可以了。安裝和配置 需要在環境變數中配置 hadoop home 在新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 都需要資料庫存在表 匯入 sqoop import connect jdbc mysql 192 168 238 100 3306 ...