首页  ·  知识 ·  大数据
sqoop定时增量导入
网友  CSDN博客  实践应用  编辑:越泽   图片来源:网络
sqoop使用hsql来存储job信息,开启metastorservice将job信息共享,所有node上的sqoop都可以运行同一个job

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 & 任务将会每四分钟执行一次


本文作者:网友 来源:CSDN博客
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读