在配置单元中运行delete或update时出现间歇性问题

nhaq1z21  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(464)

我的集群有一个非常奇怪的行为,我在hivecli中运行delete/update语句,有时可以正常工作,有时会失败,下面是命令。表已启用acid。

  1. hive> delete from temptable where name='Jose';

例外情况如下:

  1. Status: Running (Executing on YARN cluster with App id application_15217_3223)
  2. --------------------------------------------------------------------------------
  3. VERTICES STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
  4. --------------------------------------------------------------------------------
  5. Map 1 FAILED -1 0 0 -1 0 0
  6. Reducer 2 KILLED 2 0 0 2 0 0
  7. --------------------------------------------------------------------------------
  8. VERTICES: 00/02 [>>--------------------------] 0% ELAPSED TIME: 0.23 s
  9. --------------------------------------------------------------------------------
  10. Status: Failed
  11. Vertex failed, vertexName=Map 1, vertexId=vertex_15217_3223_1_00, diagnostics=[Vertex vertex_15217_3223_1_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: offset initializer failed, vertex=vertex_1514368279217_3223_1_00 [Map 1], java.lang.RuntimeException: serious problem
  12. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1273)
  13. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSplits(OrcInputFormat.java:1300)
  14. at org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:307)
  15. at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:409)
  16. at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155)
  17. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:273)
  18. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:266)
  19. at java.security.AccessController.doPrivileged(Native Method)
  20. at javax.security.auth.Subject.doAs(Subject.java:422)
  21. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
  22. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:266)
  23. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:253)
  24. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  25. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  26. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  27. at java.lang.Thread.run(Thread.java:745)
  28. Caused by: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 1
  29. at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  30. at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  31. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1268)
  32. ... 15 more
  33. Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
  34. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSargColumnNames(OrcInputFormat.java:358)
  35. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.setSearchArgument(OrcInputFormat.java:392)
  36. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.callInternal(OrcInputFormat.java:1011)
  37. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.access$2000(OrcInputFormat.java:838)
  38. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator$1.run(OrcInputFormat.java:992)
  39. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator$1.run(OrcInputFormat.java:989)
  40. at java.security.AccessController.doPrivileged(Native Method)
  41. at javax.security.auth.Subject.doAs(Subject.java:422)
  42. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
  43. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.call(OrcInputFormat.java:989)
  44. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.call(OrcInputFormat.java:838)
  45. ... 4 more
  46. ]
  47. Vertex killed, vertexName=Reducer 2, vertexId=vertex_15217_3223_1_01, diagnostics=[Vertex received Kill in INITED state., Vertex vertex_15217_3223_1_01 [Reducer 2] killed/failed due to:OTHER_VERTEX_FAILURE]
  48. DAG did not succeed due to VERTEX_FAILURE. failedVertices:1 killedVertices:1
  49. FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_15217_3223_1_00, diagnostics=[Vertex vertex_15217_3223_1_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: offset initializer failed, vertex=vertex_15217_3223_1_00 [Map 1], java.lang.RuntimeException: serious problem
  50. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1273)
  51. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSplits(OrcInputFormat.java:1300)
  52. at org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:307)
  53. at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:409)
  54. at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155)
  55. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:273)
  56. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:266)
  57. at java.security.AccessController.doPrivileged(Native Method)
  58. at javax.security.auth.Subject.doAs(Subject.java:422)
  59. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
  60. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:266)
  61. at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:253)
  62. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  63. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  64. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  65. at java.lang.Thread.run(Thread.java:745)
  66. Caused by: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 1
  67. at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  68. at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  69. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1268)
  70. ... 15 more
  71. Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
  72. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSargColumnNames(OrcInputFormat.java:358)
  73. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.setSearchArgument(OrcInputFormat.java:392)
  74. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.callInternal(OrcInputFormat.java:1011)
  75. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.access$2000(OrcInputFormat.java:838)
  76. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator$1.run(OrcInputFormat.java:992)
  77. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator$1.run(OrcInputFormat.java:989)
  78. at java.security.AccessController.doPrivileged(Native Method)
  79. at javax.security.auth.Subject.doAs(Subject.java:422)
  80. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
  81. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.call(OrcInputFormat.java:989)
  82. at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$SplitGenerator.call(OrcInputFormat.java:838)
  83. ... 4 more
  84. ]Vertex killed, vertexName=Reducer 2, vertexId=vertex_15217_3223_1_01, diagnostics=[Vertex received Kill in INITED state., Vertex vertex_15217_3223_1_01 [Reducer 2] killed/failed due to:OTHER_VERTEX_FAILURE]DAG did not succeed due to VERTEX_FAILURE. failedVertices:1 killedVertices:1

找不到任何解决方案。
原因是什么?我需要启用什么,还是需要验证cli中的任何配置或缺少什么?

utugiqy6

utugiqy61#

您可以尝试增加用于运行查询的内存。可能是在完成查询之前内存分配不足。同时尝试使用tez,我发现它通常运行得更快。。。两者之间的解释可以在这里找到https://community.hortonworks.com/questions/83394/difference-between-mr-and-tez.html
在运行查询之前,请尝试设置这些值(根据需要增加内存)

  1. SET hive.tez.container.size=4096;
  2. SET hive.tez.java.opts='-Xmx2000m';
  3. SET hive.execution.engine=tez;

或者这两个如果你想用mapreduce的话

  1. yarn.scheduler.minimum-allocation-mb
  2. yarn.scheduler.maximum-allocation-mb
nmpmafwu

nmpmafwu2#

将执行引擎设置为mr并重试。我将按预期工作。

相关问题