zoukankan      html  css  js  c++  java
  • 关于sqoop增量导入过程中,文件合并遇到的问题。

    今天在多sqoop的增量导入操作,遇到下面这个问题(报错如下):

    2019-01-12 14:20:54,332 FATAL [IPC Server handler 0 on 38807] org.apache.hadoop.mapred.TaskAttemptListenerImpl: Task: attempt_1546053074766_0445_m_000000_0 - exited :
    java.lang.RuntimeException: Can't parse input data: ' sunt in culpa qu' at FRONTBANK_INCREAT_TABLE.__loadFromFields(FRONTBANK_INCREAT_TABLE.java:321) at FRONTBANK_INCREAT_TABLE.parse(FRONTBANK_INCREAT_TABLE.java:259) at org.apache.sqoop.mapreduce.MergeTextMapper.map(MergeTextMapper.java:53) at org.apache.sqoop.mapreduce.MergeTextMapper.map(MergeTextMapper.java:34) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff] at java.sql.Timestamp.valueOf(Timestamp.java:235) at FRONTBANK_INCREAT_TABLE.__loadFromFields(FRONTBANK_INCREAT_TABLE.java:318) ... 11 more

    看到上面这个错误,一定会时间的问题,其实不然,这就牵扯到sqoop导入数据的注意事项。我们知道在sqoop导入数据的时候是按照某个特定的分割符号进行分割的。
    在这里我是按照逗号去分割每一行的字段。当这一行的数据更新之后我们按照更新时间对数据进行进行新增,更新操作(这里注意不能做删除操作)这个错误是在将增量数据导入进来之后,
    和原始的数据做merge操作的时候出现的,也就是说数据在更新的时候出现的(数据错位)。下面分析一下这个错误:

    这里有一个逗号,当好我的默认分割符号是逗号,也就是在检查完这一行数据是更新的数据,然后按照一个一个字段进行匹配的时候,突然将时间赋值给这个字符串的时候就出现问题了

    所以才会报 Caused by: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff] 也就是匹配错误的意思。

    所以在sqoop导入数据的时候分割符号是很重要(sqoop的分隔符是一个头疼的事情。解决方法就是更换分隔符)

    至此问题得到解决
    
    
  • 相关阅读:
    数据结构-循环队列程序演示
    C++进阶:新人易入的那些坑 --1.常量、常指针和指针常量
    this.$confirm的用法
    属性或方法“degreeList”不是在实例上定义的,而是在渲染期间引用的。通过初始化该属性,确保该属性是反应性的,无论是在data选项中,还是在基于类的组件中
    CSS清除浮动
    react里的高阶组件
    map和forEach的区别
    hash和history两种模式的区别
    js原型链的理解
    for..in,for..of 和forEach的区别
  • 原文地址:https://www.cnblogs.com/gxgd/p/10260018.html
Copyright © 2011-2022 走看看