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

1.新建一个workflow

2.拖入一个sqoop

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

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中,需要填入的内容如下

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语句的时候,是根据空格来分割的,那就恶心了,日期字段中间带有空格,就像这样

Setting up log4j2

log4j2 configuration file created at/data1/yarn/nm/usercache/fengz/appcache/application_1552354446915_0759/container_1552354446915_0759_01_000001/sqoop-log4j2.xml

Sqoop command arguments :

import--connect

jdbc:mysql://localhost:3306/spider_new

--username

root--password********

--target-dir/user/fengz/brand/spider_data/amac/amac_fund_20190315--delete-target-dir--fields-terminated-by

`--query"select

*

fromamac_fundwhereupdate_time

between‘2019-03-14

10:57:08‘and‘2019-03-14

14:08:45‘and

\$CONDITIONS"-m1Fetching child yarn jobs

tag id : oozie-3e829587c1f3a050998935d2c2ac3ed4

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

No child hadoop job isexecuted.

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:410)

at org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:55)

at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:223)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:422)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1685)

at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:217)

at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:153)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:422)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1685)

at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:141)

Caused by: java.lang.SecurityException: Intercepted System.exit(1)

at org.apache.oozie.action.hadoop.security.LauncherSecurityManager.checkExit(LauncherSecurityManager.java:57)

at java.lang.Runtime.exit(Runtime.java:107)

at java.lang.System.exit(System.java:971)

at org.apache.sqoop.Sqoop.main(Sqoop.java:251)

at org.apache.oozie.action.hadoop.SqoopMain.runSqoopJob(SqoopMain.java:214)

at org.apache.oozie.action.hadoop.SqoopMain.run(SqoopMain.java:199)

at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:101)

at org.apache.oozie.action.hadoop.SqoopMain.main(SqoopMain.java:51)

...16more

Intercepting System.exit(1)

Failing Oozie Launcher, Main Class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]

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

hue sqoop mysql_HUE中Oozie执行Sqoop相关推荐

  1. HUE中Oozie执行Sqoop

    Oozie执行Sqoop,传入参数(注意,在使用--query时,参数中一定不要带有空格,否则出错) 1. 新建一个workflow 2. 拖入一个sqoop 3. sqoop抽取命令如下(建议先在命 ...

  2. hbase 导入oracle,hue中使用oozie执行sqoop job将oracle中的数据增量导入hbase

    在cdh hue中使用oozie执行sqoop job时遇到下面的问题. sqoop命令 job --meta-connect jdbc:hsqldb:hsql://bigdata02:16000/s ...

  3. hive sqoop 分区导入_利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

    测试:利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中. 需要注意的地方: 1,要添加hive.metastore.uris这个参数.否则无法将数据加载到hive表中 ...

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

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

  5. Oozie 调用sqoop导数据出现NoClassDefFoundError问题

    异常 Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class o ...

  6. sqoop同步时间戳到mysql_在sqoop导入中使用24小时时间戳

    我想从使用自由格式查询的oracle导入数据,并且需要以24小时格式存储时间戳.在sqoop导入中使用24小时时间戳 sqoop import --connect jdbc:oracle:thin:( ...

  7. sqoop建表_使用Sqoop创建/导入配置单元表

    当我使用下面的import命令时,它允许我创建表并从mysql导入数据到Hive,我可以在Hive中看到表"小部件" . sqoop import --connect jdbc:m ...

  8. CDH页面中Oozie的调度告警邮箱设置

    CDH页面中Oozie的调度告警邮箱设置 1. 开启SLA 2. smtp设置 3. Hue中,对Workflow任务进行设置 4. 设置收件邮箱,结束时间可根据任务时长修改,其他可以默认 yyyy- ...

  9. 一文搞懂select语句在MySQL中的执行流程!

    MySQL作为互联网行业使用最多的关系型数据库之一,与其免费.开源的特性是密不可分的.然而,很多小伙伴工作了很多年,只知道使用MySQL进行CRUD操作,这也导致很多小伙伴工作多年后,想跳槽进入大厂, ...

最新文章

  1. 小希的迷宫(并查集)
  2. Android 自定义长按响应时间
  3. Linux读写锁释放,Linux读写锁的使用
  4. springBoot JunitTest的使用以及如何在junit启动前加载
  5. Python中键映射多个值的方法:defaultdict
  6. pem格式证书编码 x509_证书编码格式
  7. 8.霍夫变换:线条——动手编码、霍夫演示_4
  8. 【csdn】markdown使用教程
  9. nao机器人行走速度_数计学院学子在2020世界机器人大赛总决赛中荣获佳绩!
  10. 將字串轉換為日期型數據的例子
  11. Android—构建安全的Android客户端请求,避免非法请求
  12. IDEA 日常小技巧
  13. vue调用日期_Vue 前端开发——打印功能实现
  14. 按月分表(create table)
  15. 计算机基础备课计划,《计算机应用基础》教学计划备课讲稿.doc
  16. python3 爬妹子图片网站实战 代码简明易懂
  17. 北大青鸟学java是用什么课程_来自北大青鸟参加过JAVA课程的学长建议
  18. 寄昙说 剑子仙迹 天之佛
  19. Word插入脚注后分节符自动变成分页符 解决办法
  20. 1293A-ConneR and the A.R.C. Markland-N(ArrayList、二分查找)

热门文章

  1. 关于登录linux时,/etc/profile、~/.bash_profile等几个文件的执行过程
  2. JDBC操作之连接和关闭mysql数据库
  3. 《数学建模:基于R》一一2.1 回归分析
  4. 撕起来了!谁说数据少就不能用深度学习?这锅俺不背!
  5. 将json转换成struts参数
  6. 隐藏Nginx和PHP版本号
  7. python paramiko模块中设置执行命令超时值
  8. Canvas 渐变 图像组合效果 颜色翻转
  9. python pymysql 多线程 读写数据库 报错 Packet sequence number wrong
  10. linux fuser 命令 查看文件/网络端口 被什么进程占用