案例1:全量導入hdfs(刪除目標文件夾)
這是建立job,運行時需要 sqoop job -exec test_item_job
sqoop job --create test_item_job \
--meta-connect jdbc:hsqldb:hsql://192.168.1.86:16000/sqoop \
-- import \
--connect jdbc:oracle:thin:@192.168.1.160:1521:test \
--username test \
--password-file /user/admin/sqoop/pwd/dev/test.pwd \
--target-dir /db/test/t_test_item \
--table TEST.T_TEST_ITEM \
--fields-terminated-by "\t" \
--lines-terminated-by "\n" \
--null-string '\\N' \
--null-non-string '\\N' \
--delete-target-dir \
-m 1
註釋:
--meta-connect :由於連接的是集羣,需要一個公共的db倉庫管理job;
–target-dir : 目標文件夾;
–table : 源數據table ,注意oracle需要大寫
;
–fields-terminated-by : 字段分割;
–lines-terminated-by : 一行分割 ;
–null-string ,–null-non-string :對數字null 和字符串null處理 ;
–delete-target-dir : 文件夾存在就刪除;
案例2:oracle追加導入hdfs
這是建立job,運行時需要 sqoop job -exec test_info_job
sqoop job --create test_info_job \
--meta-connect jdbc:hsqldb:hsql://192.168.1.86:16000/sqoop \
-- import \
--connect jdbc:oracle:thin:@192.168.1.160:1521:test \
--username test \
--password-file /user/admin/sqoop/pwd/dev/test.pwd \
--target-dir /db/test/test_info \
--table TEST.TEST_INFO \
--fields-terminated-by "\t" \
--lines-terminated-by "\n" \
--null-string '\\N' \
--null-non-string '\\N' \
--incremental append \
--check-column UPDATE_TIME \
--merge-key ID \
--last-value "2006/01/01 00:00:00" \
--hive-drop-import-delims \
-m 1
註釋:
–incremental append 追加模式,和–check-column和 --last-value一起配合使用。
–merge-key 合併字段。
–hive-drop-import-delims 防止字段內的一些特殊字符影響分割
案例3:oracle導入hive
sqoop import \
--connect jdbc:oracle:thin:@192.168.1.160:1521:test \
--username test \
--password test \
--table BASE_TEST \
--fields-terminated-by '\t' \
--delete-target-dir \
--num-mappers 1 \
--hive-import \
--hive-database default \
--hive-table base_test
案列4:使用overwrite導入
只是添加–overwrite這裏將不進行代碼展示