oozie sqoop动作有--map-column-java

时间:2015-08-18 07:26:53

标签: java hadoop sqoop oozie

我在oozie工作流程中遇到sqoop操作错误。当我从unix propmt运行相同的sqoop命令来测试它是否有效,但是在oozie中它失败了

日志..

Sqoop命令参数:              进口              --connect              “JDBC:SQLSERVER:// XXXX:1433;的databaseName = INS;用户名= XXX;密码= XXX”              --query              “select * from dbo.tu4h3 WHERE CONCAT(substring(convert(CHAR(20),TIMESTAMP_UPDATED,120),1,10),substring(convert(CHAR(20),TIMESTAMP_UPDATED,120),12,19))> ='date "+%Y-%m-%d%T" -d "1 days ago"'和$ CONDITIONS“              -m              8              --target-DIR              HDFS:// CSAA-AAP-QA /用户/ xgkg5red / tu4h3 / 2015年8月17日              --fields封端逐              \ 001              --compression编解码器              瞬间              --split,由              TIMESTAMP_UPDATED              --map柱-java的              TIMESTAMP_UPDATED =字符串; 发布时间= 1439879702947

工作启动时间= 1439879702947 mapreduce.job.tags = oozie-1759ebad3e0fed00730556361c9eb485

  
    
      

立即调用Sqoop命令行>>>

    
  

1867 [main] WARN org.apache.sqoop.tool.SqoopTool - $ SQOOP_CONF_DIR尚未在环境中设置。无法检查其他配置。 1900 [main] INFO org.apache.sqoop.Sqoop - 运行Sqoop版本:1.4.4.2.1.5.0-695 1918 [main] WARN org.apache.sqoop.ConnFactory - $ SQOOP_CONF_DIR尚未在环境中设置。无法检查其他配置。 1940 [main] INFO org.apache.sqoop.manager.SqlManager - 使用默认的fetchSize为1000 1940 [main] INFO org.apache.sqoop.tool.CodeGenTool - 开始代码生成 2230 [main] INFO org.apache.sqoop.manager.SqlManager - 执行SQL语句:select * from dbo.tu4h3 WHERE CONCAT(substring(convert(CHAR(20),TIMESTAMP_UPDATED,120),1,10),substring(convert (CHAR(20),TIMESTAMP_UPDATED,120),12,19))> ='date "+%Y-%m-%d%T" -d "1 days ago"'和(1 = 0) 2323 [main] INFO org.apache.sqoop.manager.SqlManager - 执行SQL语句:select * from dbo.tu4h3 WHERE CONCAT(substring(convert(CHAR(20),TIMESTAMP_UPDATED,120),1,10),substring(convert (CHAR(20),TIMESTAMP_UPDATED,120),12,19))> ='date "+%Y-%m-%d%T" -d "1 days ago"'和(1 = 0) 2339 [main] ERROR org.apache.sqoop.orm.ClassWriter - 没有Java类型String的ResultSet方法; 2340 [main] ERROR org.apache.sqoop.tool.ImportTool - 导入失败:没有Java类型字符串的ResultSet方法; 拦截System.exit(1)

<<<主类的调用已完成<<<<

Oozie Launcher失败,主类[org.apache.oozie.action.hadoop.SqoopMain],退出代码[1]

Oozie Launcher失败了,优雅地完成了Hadoop工作

Oozie Launcher,将动作数据上传到HDFS序列文件:hdfs:// csaa-aap-qa / user / hdfs / oozie-oozi / 0000910-150729052958048-oozie-oozi-W / create-sqoop - sqoop / action -data.seq

Oozie Launcher结束

1 个答案:

答案 0 :(得分:0)

该问题与Sqoop或Java无关。

您的Sqoop参数包含动态参数,使用date表示为 bash脚本代码。因此,当您在Linux控制台中运行它时,它会起作用。

但是Oozie不是Linux控制台,它是一个Java应用程序。 “日期”的东西作为字符串文字处理。这就是为什么它在错误信息中显示为as-is - 你应该注意到的。

如果您对Oozie中的动态日期参数感兴趣,请查看this post