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的分隔符是一个头疼的事情。解决方法就是更换分隔符)

    至此问题得到解决
    
    
  • 相关阅读:
    [公链观点] BTC 1.0, ETH 2.0, EOS 3.0, Dapp, WASM, DOT, ADA, VNT
    [FAQ] chrome.runtime.onMessage 问题, Unchecked runtime.lastError: The message port closed before a response was received
    [FAQ] Composer, Content-Length mismatch
    [PHP] Laravel 依赖注入使用不当引起的内存溢出
    [PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别
    [PHP] 自定义 laravel/passport 的误区讲解
    [Tools] Kali Linux 高清屏扩大系统字体、BurpSuite、OpenVAS
    [NoSQL] 从模型关系看 Mongodb 的选择理由
    [quacker] Browser Extension to Clean Website ADs in Quasar BEX
    [FE] Quasar BEX 预览版指南
  • 原文地址:https://www.cnblogs.com/gxgd/p/10260018.html
Copyright © 2011-2022 走看看