Oozie 之 sqoop 实战

1.创建 lib 目录并拷贝 mysql 支持包

2.修改 job.properties 文件

nameNode=hdfs://cen-ubuntu.cenzhongman.com:8020
jobTracker=localhost:8032
queueName=default
oozieAppsRoot=oozie-apps

oozie.use.system.libpath=true

oozie.wf.application.path=\({nameNode}/user/cen/\){oozieAppsRoot}/sqoop-import/
outputDir=sqoop-import/output

3.修改 workflow.xml 文件




\({jobTracker}</job-tracker> <name-node>\){nameNode}





mapred.job.queue.name
${queueName}


import --options-file sqoop-import.sql




Sqoop failed, error message[${wf:errorMessage(wf:lastErrorNode())}]


注意事项

  • workflow 版本0,5 sqoop action 版本0.3
  • 使用的是新版本的API,但旧版本依旧支持使用(可以不用改)
  • 上文command>支持三种使用 sqoop 方式,下文会说明
  • 特别重要的 command> 只支持 “ ”

4.上传文件到HDFS文件系统

5.执行程序

export OOZIE_URL=http://cen-ubuntu:11000/oozie/
bin/oozie job --config /opt/cdh5.3.6/oozie-4.1.0-cdh5.12.0/oozie-apps/sqoop-import/job.properties -run

注:三种命令方式

1.直接执行 sqoop 命令

import --connect jdbc:mysql://cen-ubuntu:3306/mysql --username root --password ubuntu --table user --target-dir /user/cen/oozie-apps/sqoop-import/output --fields-terminated-by "\t" --num-mappers 1 --direct

2.从相对路径导入文件(文件在HDFS上的应用目录下)涉及文件需要使用file,可参考 shell

import --options-file sqoop-import.sql

job.properties文件名

EXEC=xxx.sql

# workflow.xml

\({nameNode}/user/cen/\){oozieAppsRoot}/sqoop-import/\({EXEC}#\){EXEC}

3.从绝对路径导入

job.properties

sqoop-import=\({nameNode}/user/cen/\){oozieAppsRoot}/sqoop-import/sqoop-import
# workflow.xml
import --options-file ${sqoop-import}

posted @ 2017-07-28 18:44  岑忠满  阅读(2714)  评论(0)    收藏  举报