常用命令列舉
import |
將數據導入到集羣 |
export |
將集羣數據導出 |
codegen |
獲取數據庫中某張表數據生成 Java 並打包Jar |
create-hive-table |
創建 Hive 表 |
eval |
查看 SQL 執行結果 |
import-all-tables |
導入某個數據庫下所有表到 HDFS 中 |
job |
用來生成一個 sqoop的任務,生成後,該任務並不執行,除非使用命令執行該任務 |
list-databases |
列出所有數據庫名 |
list-tables |
列出某個數據庫下所有表 |
merge |
將 HDFS 中不同目錄下面的數據合在一起,並存放在指定的目錄中 |
metastore |
記錄 sqoop job 的元數據信息,如果不啓動 metastore 實例則默認的元數據存儲目錄爲:~/.sqoop,如果要更改存儲目錄可以 在 配 置 文 件sqoop-site.xml 中進行更改 |
help |
幫助信息 |
version |
打印 sqoop 版本信息 |
公用參數:
1.數據庫連接
--connect |
連接關係型數據庫的 URL |
--connection-manager |
指定要使用的連接管理類 |
--driver |
JDBC 的 driver class |
--help |
打印幫助信息 |
--password |
連接數據庫的密碼 |
--username |
連接數據庫的用戶名 |
--verbose |
在控制檯打印出詳細信息 |
2.import
--enclosed-by <char> |
給字段值前後加上指定的字符 |
--escaped-by <char> |
對字段中的雙引號加轉義符 |
--fields-terminated-by <char> |
設定每個字段是以什麼符號作爲結束,默認爲逗號 |
--lines-terminated-by <char> |
設定每行記錄之間的分隔符,默認是\n |
--mysql-delimiters |
Mysql 默認的分隔符設置,字段之間以逗號分隔,行之間以\n 分隔,默認轉義符是\,字段值以單引號包裹 |
--optionally-enclosed-by <char> |
給帶有雙引號或單引號的字段值前後加上指定字符 |
3.export
--input-enclosed-by <char> |
對字段值前後加上指定字符 |
--input-escaped-by <char> |
對含有轉移符的字段做轉義處理 |
--input-fields-terminated-by <char> |
字段之間的分隔符 |
--input-lines-terminated-by <char> |
行之間的分隔符 |
--input-optionally-enclosed-by <char> |
給帶有雙引號或單引號的字段前後加上指定字符 |
4.hive
--hive-delims-replacement <arg> |
用自定義的字符串替換掉數據中的\r\n 和\013 \010 等字符 |
--hive-drop-import-delims |
在導入數據到 hive 時,去掉數據中的\r\n\013\010 這樣的字符 |
--map-column-hive <map> |
生成 hive 表時,可以更改生成字段的數據類型 |
--hive-partition-key |
創建分區,後面直接跟分區名,分區字段的默認類型爲string |
--hive-partition-value <v> |
導入數據時,指定某個分區的值 |
--hive-home <dir> |
hive 的安裝目錄,可以通過該參數覆蓋之前默認配置的目錄 |
--hive-import |
將數據從關係數據庫中導入到 hive 表中 |
--hive-overwrite |
覆蓋掉在 hive 表中已經存在的數據 |
--create-hive-table |
默認是 false,即,如果目標表已經存在了,那麼創建任務失敗 |
--hive-table |
後面接要創建的 hive 表,默認使用 MySQL 的表名 |
--table |
指定關係數據庫的表名 |
命令參數:
1.import
--append |
將數據追加到 HDFS 中已經存在的 DataSet 中,如果使用該參數,sqoop 會把數據先導入到臨時文件目錄,再合併 |
--as-avrodatafile |
將數據導入到一個 Avro 數據文件中 |
--as-sequencefile |
將數據導入到一個 sequence文件中 |
--as-textfile |
將數據導入到一個普通文本文件中 |
--boundary-query <statement> |
邊界查詢,導入的數據爲該參數的值(一條 sql 語句)所執行的結果區間內的數據 |
--columns <col1, col2, col3> |
指定要導入的字段 |
--direct |
直接導入模式,使用的是關係數據庫自帶的導入導出工具,以便加快導入導出過程 |
--direct-split-size |
在使用上面 direct 直接導入的基礎上,對導入的流按字節分塊,即達到該閾值就產生一個新的文件 |
--inline-lob-limit |
設定大對象數據類型的最大值 |
--m 或–num-mappers |
啓動 N 個 map 來並行導入數據,默認 4 個 |
--query 或--e <statement> |
將查詢結果的數據導入,使用時必須伴隨參--target-dir,--hive-table,如果查詢中有where 條件,則條件後必須加上$CONDITIONS 關鍵字 |
--split-by <column-name> |
按照某一列來切分表的工作單元,不能與--autoreset-to-one-mapper 連用(請參考官方文檔) |
--table <table-name> |
關係數據庫的表名 |
--target-dir <dir> |
指定 HDFS 路徑 |
--warehouse-dir <dir> |
與 14 參數不能同時使用,導入數據到 HDFS 時指定的目錄 |
--where |
從關係數據庫導入數據時的查詢條件 |
--z 或--compress |
允許壓縮 |
--compression-codec |
指定 hadoop 壓縮編碼類,默認爲 gzip(Use Hadoop codecdefault gzip) |
--null-string <null-string> |
string 類型的列如果 null,替換爲指定字符串 |
--null-non-string <null-string> |
非 string 類型的列如果 null,替換爲指定字符串 |
--check-column <col> |
作爲增量導入判斷的列名 |
--incremental <mode> |
mode:append 或 lastmodified |
--last-value <value> |
指定某一個值,用於標記增量導入的位置 |
2.export
--direct |
利用數據庫自帶的導入導出工具,以便於提高效率 |
--export-dir <dir> |
存放數據的 HDFS 的源目錄 |
-m 或--num-mappers <n> |
啓動 N 個 map 來並行導入數據,默認 4 個 |
--table <table-name> |
指定導出到哪個 RDBMS 中的表 |
--update-key <col-name> |
對某一列的字段進行更新操作 |
--update-mode <mode> |
updateonly |
--input-null-string <null-string> |
參考 import |
--input-null-non-string <null-string> |
參考 import |
--staging-table <staging-table-name> |
創建一張臨時表,用於存放所有事務的結果,然後將所有事務結果一次性導入到目標表中,防止錯誤 |
--clear-staging-table |
如果第 9 個參數非空,則可以在導出操作執行前,清空臨時事務結果表 |
3.codegen
將關係型數據庫中的表映射爲一個 Java 類,在該類中有各列對應的各個字段
--bindir <dir> |
指定生成的 Java 文件、編譯成的 class 文件及將生成文件打包爲 jar 的文件輸出路徑 |
--class-name <name> |
設定生成的 Java 文件指定的名稱 |
--outdir <dir> |
生成 Java 文件存放的路徑 |
--package-name <name> |
包名,如 com.z,就會生成 com和 z 兩級目錄 |
--input-null-non-string <null-str> |
在生成的 Java 文件中,可以將 null 字符或者不存在的字符串設置爲想要設定的值(例如空字符串) |
--input-null-string <null-str> |
將 null 字符串替換成想要替換的值(一般與 5 同時使用) |
--map-column-java <arg> |
數據庫字段在生成的 Java 文件中會映射成各種屬性,且默認的數據類型與數據庫類型保持對應關係。該參數可以改變默認類型,例如:--map-column-java id=long, |
--null-non-string <null-str> |
在生成 Java 文件時,可以將不存在或者 null 的字符串設置爲其他值 |
--null-string <null-str> |
在生成 Java 文件時,將 null字符串設置爲其他值(一般與8 同時使用) |
--table <table-name> |
對應關係數據庫中的表名,生成的 Java 文件中的各個屬性與該表的各個字段一一對應 |
本文爲轉自:https://blog.csdn.net/ys_230014/article/details/82691104