Sqoop工具模塊之sqoop-import-all-tables

sqoop-import-all-tables

1、介紹

    import-all-tables工具將一組表從RDBMS導入到HDFS。來自每一個表的數據存儲在HDFS的單獨目錄中。mysql

一、使用要求

    要使import-all-tables工具備用,必須知足如下條件:sql

    1.每一個表必須具備主鍵或使用--autoreset-to-one-mapper選項。數據庫

    2.導入每張表的全部列。bash

    3.使用默認拆分列,不能使用WHERE。app

二、語法

$ sqoop import-all-tables (generic-args) (import-args)
$ sqoop-import-all-tables (generic-args) (import-args)

2、參數

一、通用參數

--connect <jdbc-uri>:指定JDBC鏈接字符串。
--connection-manager <class-name>:指定要使用的鏈接管理器類。
--driver <class-name>:手動指定要使用的JDBC驅動程序類。
--hadoop-mapred-home <dir>:覆蓋$ HADOOP_MAPRED_HOME。
--help:打印使用說明。
--password-file:爲包含認證密碼的文件設置路徑。
-P:從控制檯讀取密碼。
--password <password>:設置驗證密碼。
--username <username>:設置驗證用戶名。
--verbose:在運行時打印更多信息。
--connection-param-file <filename>:提供鏈接參數的可選屬性文件。
--relaxed-isolation:將mapper的鏈接事務隔離設置爲只讀。

 

二、導入控制參數

--as-avrodatafile:將數據導入Avro數據文件。
--as-sequencefile:將數據導入到SequenceFiles。
--as-textfile:以純文本形式導入數據(默認)。
--as-parquetfile:將數據導入Parquet文件。
--direct:使用direct快速導入。
--inline-lob-limit <n>:設置內聯LOB的最大大小。
-m,--num-mappers <n>:使用n個mapper任務並行導入。
--warehouse-dir <dir>:表目的地的HDFS父級目錄。
-z,--compress:啓用壓縮。
--compression-codec <c>:使用Hadoop編解碼器(默認gzip)。
--exclude-tables <tables>:逗號分隔的表格列表,以便從導入過程當中排除。
--autoreset-to-one-mapper:若是表沒有主鍵,導入時使用一個mapper執行。

    這些參數的使用方式和sqoop-import工具的使用方式同樣,可是--table、--split-by、--columns和--where參數不能用於sqoop-import-all-tables工具。--exclude-tables參數只能在sqoop-import-all-tables工具中使用。工具

三、輸出格式參數

--enclosed-by <char>:設置必需的字段包圍字符。
--escaped-by <char>:設置轉義字符。
--fields-terminated-by <char>:設置字段分隔符。
--lines-terminated-by <char>:設置行尾字符。
--mysql-delimiters:使用MySQL的默認分隔符集:fields:, lines:\n escaped-by:\ optional-enclosed-by:'。
--optionally-enclosed-by <char>:設置字段包含字符。

 

四、輸入分析參數

--input-enclosed-by <char>:設置必需的字段封閉器。
--input-escaped-by <char>:設置輸入轉義字符。
--input-fields-terminated-by <char>:設置輸入字段分隔符。
--input-lines-terminated-by <char>:設置輸入的行尾字符。
--input-optionally-enclosed-by <char>:設置字段包含字符。

 

五、Hive參數

--hive-home <dir>:覆蓋 $HIVE_HOME。
--hive-import:將表導入Hive(若是沒有設置,則使用Hive的默認分隔符。)。
--hive-overwrite:覆蓋Hive表中的現有數據。。
--create-hive-table:若是設置,則做業將失敗,若是目標配置單元表存在。默認狀況下,該屬性爲false。
--hive-table <table-name>:設置導入到Hive時要使用的表名。
--hive-drop-import-delims:導入到Hive時,從字符串字段中 刪除\ n,\ r和\ 01。
--hive-delims-replacement:在導入到Hive時,將字符串字段中的\ n,\ r和\ 01 替換爲用戶定義的字符串。
--hive-partition-key:分區的配置單元字段的名稱被打開
--hive-partition-value <v>:字符串值,用做此做業中導入配置單元的分區鍵。
--map-column-hive <map>:覆蓋從SQL類型到配置列的Hive類型的默認映射。若是在此參數中指定逗號,請使用URL編碼的鍵和值,例如,使用DECIMAL(1%2C%201)而不是DECIMAL(1,1)。

 

六、代碼生成參數

--bindir <dir>:編譯對象的輸出目錄。
--jar-file <file>:禁用代碼生成; 使用指定的jar。
--outdir <dir>:生成代碼的輸出目錄。
--package-name <name>:將自動生成的類放入此包中。

3、應用示例

    導出corp數據庫中的全部表:oop

$ sqoop import-all-tables --connect jdbc:mysql://db.foo.com/corp

    驗證結果:編碼

$ hadoop fs -ls
Found 4 items

drwxr-xr-x   - someuser somegrp       0 2010-04-27 17:15 /user/someuser/EMPLOYEES
drwxr-xr-x   - someuser somegrp       0 2010-04-27 17:15 /user/someuser/PAYCHECKS
drwxr-xr-x   - someuser somegrp       0 2010-04-27 17:15 /user/someuser/DEPARTMENTS
drwxr-xr-x   - someuser somegrp       0 2010-04-27 17:15 /user/someuser/OFFICE_SUPPLIES

 

上一篇:Sqoop工具模塊之sqoop-importspa

下一篇:Sqoop工具模塊之sqoop-export.net

相關文章
相關標籤/搜索