最近在使用sqoop把oracle中的数据导入到hbase中, 表中的数据每个小时导入一次,使用oozie定时促发。
hadoop版本:hadoop-2.0.0-cdh4.3.0
oozie版本:oozie-3.3.2-cdh4.3.0
sqoop版本:sqoop-1.4.3-cdh4.3.0
相应的配置如下:
coordinator.xml
xmlns="uri:oozie:coordinator:0.2">
1
${nameNode}/user/${coord:user()}/${tescommRoot}/apps/sqoop/cfg_check_formula
workflow.xml
${jobTracker}
${nameNode}
mapred.job.queue.name
${queueName}
import
--connect
jdbc:oracle:thin:@127.0.0.1:1523:TEST
--username
ora
--password
111
--m
1
--query
SELECT ROWID, a.* FROM cfg_check_formula a WHERE $CONDITIONS
--map-column-java
ROWID=String
--hbase-table
cfg_check_formula
--hbase-row-key
ROWID
--column-family
f_cfg_check_formula
Sqoop import cfg_check_formula failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
job.properties
nameNode=hdfs://master:8020
jobTracker=master:8032
queueName=default
testRoot=test
oozie.use.system.libpath=true
oozie.coord.application.path=${nameNode}/user/${user.name}/${testRoot}/apps/sqoop/cfg_check_formula
#start=2013-08-29T10:00Z
#end=2013-08-29T12:00Z
start=2013-09-04T11:00+0800
end=2013-09-04T12:00+0800
上述配置完后,在workflow目录下创建lib目录,把sqoop lib下的jar拷贝至这个目录下。这样我们就可以通过oozie定时启动这个导入任务。