一、sqoop在將mysql數據寫入HDFS並關聯hive時不須要提早在hive中創建對應表,sqoop將在hive中自動創建同名表。html
二、參考命令參數地址:mysql
http://www.zihou.me/html/2014/01/28/9114.htmlsql
http://book.51cto.com/art/201412/460072.htm 數據庫
三、將mysql數據寫入HDFSoop
sqoop import -connect jdbc:mysql://192.xxx.x.x:3306/data -username hivedb -password hivedb -table tb_clientupload -m 1 -target-dir /user/hadoop/sqoop1
命令釋義:spa
sqoop import(表示此爲導入命令) -connect jdbc:mysql://192.xxx.x.x:3306/data(鏈接的數據庫地址) -username hivedb(鏈接數據庫所需的用戶名) -password hivedb(鏈接數據庫所需的密碼)-table tb_clientupload (要導入的數據庫中的表)-m 1 (導入的並行數啓動N個map來並行導入數據,默認是4個,最好不要將數字設置爲高於集羣的節點數,此處啓動了幾個並行,導入到HDFS中的數據就將被分割爲幾個文件。設爲1則不啓動並行,HDFS中文件就將按照Block Size的128M大小來分割文件,當數據大於128M時進行分割)-target-dir /user/hadoop/sqoop1(要導入到的HDFS中的目錄)code
更新:導入非本地的hdfs地址時,-target-dir hdfs://hdfs的ip地址:hdfs的端口/user/hadoop/sqoop1xml
便可。htm
運行成功後在HDFS中查看結果以下:ip
四、將mysql數據寫入Hive
sqoop import -connect jdbc:mysql://192.xxx.x.x:3306/data -username hivedb -password hivedb -table tb_sensorstate -m 1 -hive-import
Sqoop1.4.6彷佛已經不支持向hive中根據自增主鍵ID作增量導入,還能夠根據日期進行更新。
這個還不太肯定。