前面介紹了sqoop1.4.6的如何將mysql數(shù)據(jù)導(dǎo)入Hadoop之Sqoop安裝曼月,下面就介紹兩者間的數(shù)據(jù)互通的簡單使用命令纵势。
顯示mysql數(shù)據(jù)庫的信息幔嫂,一般sqoop安裝測(cè)試用
sqoop list-databases --connect jdbc:mysql://192.168.2.101:3306/ --username root --password root
顯示數(shù)據(jù)庫里所有表:
sqoop list-tables --connectjdbc:mysql://192.168.2.101:3306/FlowDB --username root -password root
mysql導(dǎo)入到hdfs中
sqoopimport--connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --fields-terminated-by'\t'-m 1
sqoop ##sqoop命令
import ##表示導(dǎo)入
--connect jdbc:mysql://ip:3306/sqoop ##告訴jdbc纱昧,連接mysql的url
--username root ##連接mysql的用戶名
--password admin ##連接mysql的密碼
--table aa ##從mysql導(dǎo)出的表名稱
--fields-terminated-by '\t' ##指定輸出文件中的行的字段分隔符
--target-dir/user/hadoop/databases/ssa/fin_cashier_order
-m 1 ##復(fù)制過程使用1個(gè)map作業(yè)
若是不寫--target-dir 則默認(rèn)是hdfs上的user/username/tablename 路徑
如果重復(fù)執(zhí)行,會(huì)提示目錄已經(jīng)存在,可以手動(dòng)刪除
該命令執(zhí)行結(jié)束后侣灶,觀察hdfs的目錄/user/{USER_NAME}习霹,下面會(huì)有一個(gè)文件夾是aa,里面有個(gè)文件是part-m-00000炫隶。該文件的內(nèi)容就是數(shù)據(jù)表aa的內(nèi)容淋叶,字段之間是使用制表符分割的。
查看HDFS上的文件
hadoop fs -cat /user/jzyc/WorkTable/part-m-00000
hdfs導(dǎo)出到mysql中
把上一步導(dǎo)入到hdfs的數(shù)據(jù)導(dǎo)出到mysql中伪阶。我們已知使用制表符分隔的煞檩。那么,我們現(xiàn)在數(shù)據(jù)庫FlowDB中創(chuàng)建一個(gè)數(shù)據(jù)表叫做WorkTable_hdfs栅贴,里面有兩個(gè)字段斟湃。然后執(zhí)行下面的命令
sqoop export --connect jdbc:mysql://192.168.2.101:3306/FlowDB --table WorkTable_hdfs --username root --password root --export-dir /user/jzyc/WorkTable/ --input-fields-terminated-by'\t'
sqoop導(dǎo)入視圖到hdfs
sqoopimport--connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root--query'SELECT * FROM view_WorkTable WHERE \$CONDITIONS'-m 1 target-dir /user/jzyc/WorkTable --delete-target-dir --fields-terminated-by","
將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫導(dǎo)入文件到hive表中,--query 語句使用
sqoopimport--append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --query"SELECT ID,Classify,Name,ModelType,CreateDate,CreateUserID,DesignJSON,Status from WorkTable where \$CONDITIONS"-m 1 --target-dir /hive/warehouse/WorkTable --fields-terminated-by","
將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫導(dǎo)入文件到hive表中檐薯,--columns --where 語句使用
sqoopimport--append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --columns"ID,Classify,Name,ModelType,CreateDate,CreateUserID"--where"Classify = 1"-m 1 --target-dir /hive/warehouse/WorkTable2 --fields-terminated-by","
注意:--target-dir/hive/warehouse/WorkTable2 可以用 --hive-import --hive-table WorkTable2 進(jìn)行替換
從上面的信息可以看到sqoop還是走的hadoop的M/R引擎凝赛。
以上只是一些經(jīng)過驗(yàn)證通過的簡單的示例,更復(fù)雜的有待后續(xù)補(bǔ)充坛缕。