sqoop增量导出mysql_sqoop定时增量导入导出
sqoop使用hsql來存儲job信息,開啟metastor service將job信息共享,所有node上的sqoop都可以運行同一個job
一、sqoop的配置文件在sqoop.site.xml中:
1、sqoop.metastore.server.location
本地存儲路徑,默認在tmp下,改為其他路徑
2、sqoop.metastore.server.port
metastore service端口號
3、sqoop.metastore.client.autoconnect.url
sqoop自動連接的metastore地址,默認是本地的metastore地址
4、sqoop.metastore.client.enable.autoconnect
開啟自動連接。sqoop默認連接本地metastore。注釋這個配置會開啟自動連接。
二、開啟metastore service
sqoop下,nohup bin/sqoop metastore
三、創建job
sqoop支持兩種增量導入模式,
一種是 append,即通過指定一個遞增的列,比如:
--incremental append? --check-column num_iid --last-value 0
varchar類型的check字段也可以通過這種方式增量導入(ID為varchar類型的遞增數字):
--incremental append? --check-column?ID --last-value 8
另種是可以根據時間戳,比如:
--incremental lastmodified --check-column created --last-value '2012-02-01 11:0:00'
就是只導入created 比'2012-02-01 11:0:00'更大的數據。
bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --create job_zyztest13 -- import? --connect jdbc:oracle:thin:@10.106.1.236:1521:orcl --username SQOOP --password sqoop? --table LXC_TEST_HBASE_TO_ORACLE?? --columns NAME,SEX,AGE,CSRQ -m 1 --hbase-table SQOOP_IMPORT_TEST3 --column-family info --hbase-row-key? NAME --split-by NAME --incremental lastmodified --check-column CSRQ --last-value '2012-02-01 11:0:00' --verbose
nohup /opt/hadoopcluster/sqoop-1.4.2.bin__hadoop-2.0.0-alpha/bin/sqoop job --exec job_zyztest13 > job_zyztest13.out 2>&1 &
此時,在10.106.1.234上創建了job_zyztest13這個job,通過bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --list可以查看所有job
四、定時執行
使用linux定時器:crontab -e
編輯定時器,添加*/4 * * * *? /opt/hadoopcluster/sqoop-1.4.2.bin__hadoop-2.0.0-alpha/bin/sqoop job --meta-connect jdbc:hsqldb:hsql://10.106.1.234:16000/sqoop --exec job_zyztest13 > job_zyztest13.out 2>&1 & 任務將會每四分鐘執行一次
總結
以上是生活随笔為你收集整理的sqoop增量导出mysql_sqoop定时增量导入导出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hilbert变换_希尔伯特变换 mat
- 下一篇: pytest teardown 未执行_