关于UUID导致数据同步异常(org.apache.sqoop.mapreduce.AsyncSqlOutputFormat: Got exception in update thread: com)
来源:互联网 发布:php过滤emoji的正则 编辑:程序博客网 时间:2024/06/17 04:43
1、异常概述及其分析过程
在大数据同步过程中,为了数据分析同步并按天更新到关系型数据中(以MYSQL为例)且保证数据的唯一性,采用UUID所谓的永远不会重复的字符串作为数据表的ID。
但在实际操作由于数据处理基数超大(数亿的数据量),加上UUID版本选择不恰当。致使UUID出现小概率事件重复,最终导致数据同步发生异常。异常如下
图一
图2
2、解决方案
有图一所示job_1499327741859_15469作业出现异常,根据Job的ID在大数据平台(CDH的YARN中)中查Job的日志如图二所示,
'28f449d76520496bba9e2e3f375b08a6' for key 'PRIMARY 的KEY存在重复。问题就来了,问什么ID重复,是什么原因导致UUID的重复,接下来
要从查找数据处理具体代码,如下图三中红框中可知java.util.UUID,random 它是产生UUID核心代码。接下来对UUID进全方位的了解,如链接
http://blog.csdn.net/qq592304796/article/details/52497940 可知上述所使用UUID为版本4,由于其产生的UUID为存在伪随机数,也就是说其有产生重复UUID的可能。
图三
3、问题结论
至此UUID重复异常原因被彻底剖析出来。所以强烈建议不要使用UUID版本4,以避免此后出现类似的异常
阅读全文
0 0
- 关于UUID导致数据同步异常(org.apache.sqoop.mapreduce.AsyncSqlOutputFormat: Got exception in update thread: com)
- Sqoop---Got exception in update thread: com.mysql.jd bc.exceptions.jdbc4.MySQLSyntaxErrorException
- Zookeeper异常Exception in thread "main" org.apache.zookeeper.KeeperExcep
- Exception in thread "main" org.apache.ibatis.binding.BindingException: Mapper method 'com.demo.DAO.B
- Exception in thread "main" org.apache.spark.SparkException: Task not serializable异常
- Maven打包异常:Exception in thread “main” java.lang.UnsupportedClassVersionError:org/apache/maven/cli
- exception in thread main org.apache.axis2.wsdl.codegen.CodeGen
- Exception in thread "main" org.apache.spark.SparkException: Application application_1498149692663_01
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/com
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/com
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/com
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/com
- rcp(插件开发)异常:Exception in thread "Thread-7" org.eclipse.swt.SWTException: Invalid thread access
- Mybatis错误(一)Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
- 关于Hibernate出现找不到实体类(Exception in thread "main" org.hibernate.MappingException: Unknown entity)
- 关于Hibernate出现找不到实体类(Exception in thread "main" org.hibernate.MappingException: Unknown entity)
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/Nestabl
- Velocity报错: Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException:
- 关于dp小结(一)
- 减少Servlet的一些方法
- Fibonacci博弈的证明
- VC++ MFC 按钮的全部样式Style
- Parity check
- 关于UUID导致数据同步异常(org.apache.sqoop.mapreduce.AsyncSqlOutputFormat: Got exception in update thread: com)
- 详述 Kafka 基本原理
- poj 1185 炮兵阵地 (状态压缩dp )
- C#第一天
- OpenSSL AES, RSA 算法加密本地文件
- AI:IPPR的数学表示-CNN结构进化(AlexNet、InceptionNet、ResNet、InceptionResNet)
- Android图片压缩机制
- [java]spring-Quartz定时任务
- Spring 源码分析(一) —— 迈向Spring之路【转】