Sqoop1實現數據傳遞至HDFS和Hive中

一、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作增量導入,還能夠根據日期進行更新。

這個還不太肯定。

相關文章
相關標籤/搜索