大数据计算跑数据时,出现跑错的情况。出现以下报错:
FAILED: Hive Internal Error: java.util.ConcurrentModificationException(null) java.util.ConcurrentModificationException at java.util.Hashtable$Enumerator.next(Hashtable.java:1383) at org.apache.hadoop.conf.Configuration.iterator(Configuration.java:2853) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.initialize(ExecDriver.java:178) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2649) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:2335) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:2011) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1709) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1703) at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:157) at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:218) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:188) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:402) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:335) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:787) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683) 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.hadoop.util.RunJar.run(RunJar.java:318) at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
Hive Internal Error: java.util.ConcurrentModificationException(null)
hive内部错误:并发修改异常
那如何解决并发修改问题呢?
那么我们首先要知道什么是并发修改问题:
1.ConcurrentModificationException异常出现的原因
什么是并发修改问题?
对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。(换句话说:在使用迭代去遍历集合的时候,又使用集合对象向数组中添加元素。就会出现并发修改问题)
2.解决办法1.如果是单线程:
2.如果是多线程:
多线程发生并发修改异常示例:
资料整理来源:Java并发--ConcurrentModificationException(并发修改异常)异常原因和解决方法 - 一頁書 - 博客园



