Oozie执行Sqoop,传入参数(注意,在使用--query时,参数中一定不要带有空格,否则出错)
1. 新建一个workflow

2. 拖入一个sqoop

3. sqoop抽取命令如下(建议先在命令行试下,因为oozie的错误提示很委婉,基本看不出错误原因)

  1. sqoop import --connect jdbc:mysql://localhost:3306/spider_new --username root --password 1234qwer --target-dir /user/fengz/brand/spider_data/amac/amac_fund_${date} --delete-target-dir --fields-terminated-by '`' --query select * from amac_fund where update_time between '${start_time}' and '${end_time}' and \$CONDITIONS -m 1

这是在命令行可执行的命令,其中有三个动态参数,${date}、${start_time}、${end_time},此处做了一个import的导入操作,把指定数据抽取到HDFS路径下,用了--query写SQL语句抽取想要的数据,此处需要注意,如果使用--query,必须要带\$CONDITIONS,否则执行失败。
4. 填入oozie-sqoop中,需要填入的内容如下

  1. import --connect jdbc:mysql://localhost:3306/spider_new --username root --password 1234qwer --target-dir /user/fengz/brand/spider_data/amac/amac_fund_${date} --delete-target-dir --fields-terminated-by ` --query select * from amac_fund where update_time between '${start_time}' and '${end_time}' and \$CONDITIONS -m 1

注意:指定分隔符时,要把单引号去掉,下边还有一个大坑
5. 添加参数

6. 启动,填入参数

7. 那么问题来了,报错是必须的
oozie在解析sqoop语句的时候,是根据空格来分割的,那就恶心了,日期字段中间带有空格,就像这样

  1. Setting up log4j2
  2. log4j2 configuration file created at /data1/yarn/nm/usercache/fengz/appcache/application_1552354446915_0759/container_1552354446915_0759_01_000001/sqoop-log4j2.xml
  3. Sqoop command arguments :
  4. import
  5. --connect
  6. jdbc:mysql://localhost:3306/spider_new
  7. --username
  8. root
  9. --password
  10. ********
  11. --target-dir
  12. /user/fengz/brand/spider_data/amac/amac_fund_20190315
  13. --delete-target-dir
  14. --fields-terminated-by
  15. `
  16. --query
  17. "select
  18. *
  19. from
  20. amac_fund
  21. where
  22. update_time
  23. between
  24. '2019-03-14
  25. ::'
  26. and
  27. '2019-03-14
  28. ::'
  29. and
  30. \$CONDITIONS"
  31. -m
  32.  
  33. Fetching child yarn jobs
  34. tag id : oozie-3e829587c1f3a050998935d2c2ac3ed4

再看下oozie的错误提示,呵呵呵....发现一点鸟用都没有

  1. No child hadoop job is executed.
  2. java.lang.reflect.InvocationTargetException
  3. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  4. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)
  5. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)
  6. at java.lang.reflect.Method.invoke(Method.java:)
  7. at org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:)
  8. at org.apache.oozie.action.hadoop.LauncherAM.access$(LauncherAM.java:)
  9. at org.apache.oozie.action.hadoop.LauncherAM$.run(LauncherAM.java:)
  10. at java.security.AccessController.doPrivileged(Native Method)
  11. at javax.security.auth.Subject.doAs(Subject.java:)
  12. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:)
  13. at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:)
  14. at org.apache.oozie.action.hadoop.LauncherAM$.run(LauncherAM.java:)
  15. at java.security.AccessController.doPrivileged(Native Method)
  16. at javax.security.auth.Subject.doAs(Subject.java:)
  17. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:)
  18. at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:)
  19. Caused by: java.lang.SecurityException: Intercepted System.exit()
  20. at org.apache.oozie.action.hadoop.security.LauncherSecurityManager.checkExit(LauncherSecurityManager.java:)
  21. at java.lang.Runtime.exit(Runtime.java:)
  22. at java.lang.System.exit(System.java:)
  23. at org.apache.sqoop.Sqoop.main(Sqoop.java:)
  24. at org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:)
  25. at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:)
  26. at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:)
  27. at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:)
  28. ... more
  29. Intercepting System.exit()
  30. Failing Oozie Launcher, Main Class [org.apache.oozie.action.hadoop.SqoopMain], exit code []

以后用的时候注意下就好了。那这个问题怎么解决?用shell,shell脚本里边写sqoop抽取

HUE中Oozie执行Sqoop的更多相关文章

  1. HUE中oozie执行shell

    Oozie执行Shell,传入参数1. 新建一个workflow 2. 拖入一个shell 3. shell脚本如下 #!/bin/sh sqoop import --connect jdbc:mys ...

  2. HUE中Oozie执行Hive脚本

    Oozie执行hive,传入参数1. 新建一个workflow 2. 拖入一个hive2 3. hive脚本如下 CREATE TABLE IF NOT EXISTS spider_tmp.org_i ...

  3. [转]云计算之hadoop、hive、hue、oozie、sqoop、hbase、zookeeper环境搭建及配置文件

     云计算之hadoop.hive.hue.oozie.sqoop.hbase.zookeeper环境搭建及配置文件已经托管到githubhttps://github.com/sxyx2008/clou ...

  4. Hue,Oozie运行sqoop找不到驱动解决办法

    一.前言 平台:CDH 5.13.0 公司在客户那边有个项目需要部署cloudera平台,部署的时候,在这个版本的cdh中,除了基本组件,还选了sqoop2作为数据传输工具,希望能在Oozie中通过工 ...

  5. HUE通过oozie工作流执行shell脚本

    HUE通过oozie工作流执行shell脚本 2018年01月17日 16:20:38 阅读数:217 首先上传对应的jar包和storm.sh脚本到hdfs,脚本内容如下: 脚本主要内容是:从hdf ...

  6. 2-10 就业课(2.0)-oozie:6、通过oozie执行mr任务,以及执行sqoop任务的解决思路

    执行sqoop任务的解决思路(目前的问题是sqoop只安装在node03上,而oozie会随机分配一个节点来执行任务): ======================================= ...

  7. 在Hue中提交oozie定时任务

    可以参见下面这篇博文: 通过hue提交oozie定时任务

  8. CDH hue下定时执行hive脚步

        今天在看oozie时发现能在hue中执行hive 脚本,主要是hue 和 oozie结合使用,下面介绍下怎么使用的,挺恶心的,哈哈(在这里就不哔哔了) 提交oozie定时作业 1.进入hue界 ...

  9. Oozie 配合 sqoop hive 实现数据分析输出到 mysql

    文件/RDBMS -> flume/sqoop -> HDFS -> Hive -> HDFS -> Sqoop -> RDBMS 其中,本文实现了 使用 sqoo ...

随机推荐

  1. 网络通信框架Volley使用详细说明

    前一篇粗略的介绍了一下Volley,并在最后附上了一段使用代码,这一篇详细的介绍一下Volley的使用.前面也说了Volley主要获取JSON对象和图片加载,这里也分为两部分介绍. 1.获取JSON对 ...

  2. 《从零开始学Swift》学习笔记(Day 59)——代码排版

    原创文章,欢迎转载.转载请注明:关东升的博客 代码排版包括: 空行.空格.断行和缩进等内容.代码排版内容比较多工作量很多,但是非常重要. 空行 空行将逻辑相关的代码段分隔开,以提高可读性.下列情况应该 ...

  3. 表达式求值(java)

    今天去面试,考了这个,短时间没想出来... 太笨了! 后来想用栈和递归做 但是看了网上才知道,可以将中缀表达式转为后缀表达式,就极其方便了. import java.util.Scanner; imp ...

  4. 所有版本chromedriver下载

     所有版本chromedriver下载 http://chromedriver.storage.googleapis.com/index.html

  5. jQuery获取textarea中的文本

    今天出了一个bug,用$("#textareaid").text()获取textarea中的信息在IE下没问题,在火狐中居然获取不到信息,经过查阅资料才发现,应该用$(" ...

  6. NW.js 入坑指南

    NW.js是什么? NW.js 是基于 Chromium 和 Node.js 运行的, 以前也叫nodeWebkit.这就给了你使用HTML和JavaScript来制作桌面应用的可能.在应用里你可以直 ...

  7. Downgrading an Exchange 2010 Server(Exchange降级)

    Downgrading an Exchange 2010 Server Microsoft Exchange Server 2010 comes in two versions: enterprise ...

  8. 创建view,保存GROUP_CONCAT数据

    create view user_account_view asSELECT u.userId UserId ,u.userCode UserCode,GROUP_CONCAT(ac.id) Acco ...

  9. 详细介绍Redis的几种数据结构以及使用注意事项(转)

    原文:详细介绍Redis的几种数据结构以及使用注意事项 1. Overview 1.1 资料 <The Little Redis Book>,最好的入门小册子,可以先于一切文档之前看,免费 ...

  10. DotNetBar.Bar图标列表的使用

    DotNetBar.Bar图标列表的使用 老帅 控件DevComponents.DotNetBar.Bar怎样使用图像列表呢?比方给工具条或者菜单加上图标.例如以下几步就可以! 方法1: 1.放一个S ...