一、sqoop help
你可以使用sqoop help (tool-name)也可以使用sqoop (tool-name)--help來使用幫助。
例如: sqoop help import. sqoop import --help.
二、sqoop的别名
例如:sqoop import --help 等同于 sqoop-import --help,即sqoop-import是sqoop import的别名。
三、sqoop-import
$ sqoop help import
其中generic option的設定要在common arguments之前,-conf,-fs,-jt-,-d都是對hadoop服務進行設定的,例如 -d mapred.job.name=<job_name>能夠制定job的名字,如果不指定的話job的名字将以用到的jar包作為job的名字。
例如:
而files、libjars 、archives 選項則不具有代表性質,因為這些選項在hadoop内部指令中已經被支援了,可以檢視hadoop job的幫助。
四、sqoop腳本
舉例:
下面把這些選項參數做成腳本進行傳遞:(import.txt)
那麼import.txt中的參數要按照行來進行分隔,内容如下:
舉個sqoop連接配接資料庫,将資料庫内的資料導入到hdfs中的例子:
這樣連接配接例子需要把mysql driver的jar包放到你的環境path中,否則請這樣使用:
sqoop-import控制參數:
五、利用查詢結果作為sqoop的導入内容
舉例:其中split-by是導入後的資料按照a.id進行分割,--target-dir目标位址,查詢後的結果将放入這個檔案
舉例:m代表隻查詢一次并且邊查詢邊導入
導入時候可以控制分割檔案大小,或者字元串轉義例如:--direct-split-size 以及--warehouse-dir ,--default-character-set
sqoop對java以及hive提供支援,是以你可以導入key/value這樣的map資料,例如:
六、sqoop的增量導入
通過增量導入你可以隻導入一個已經存在表的增列值,或者表後面的值。
當然你也可以指定導入到hive後的檔案格式:有2種
1.--as-textfile
這個參數你可以檢視到hive内的原資料就是文本檔案模式沒有壓縮
2.-z or --compress or --compression-codec
這個參數有3種寫法不過導入到hive内的資料就是壓縮過的了
七、sqoop的hive與hbase的資料導入
前六點都能看完後,hive與hbase的導入也就很簡單了,其實就是多了一步導入的資料放在哪裡而已。
hive舉例:
注意事項:
導入時除了用到sqoop相關的hive與hbase的參數外,還會用到導入時候專用的參數:
這個部分的參數有可能你會用到的。另外如果導入語句沒有添加目的表或者位址則導入的内容會寫在hdfs目前的操作目錄下。
八、sqoop導入全部表和資料
舉個例子,其他參數均與sqoop help參數相同:
驗證結果: