[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14041902#comment-14041902 ] George Wong commented on HIVE-7273: --- I can not provide a simple query to trigger this issue. In our prod environment, the query is a little bit complex. We use lateral view and put multiple insert in one query shot. The data size of the input is roughly about 170GB. I am trying to reproduce this issue in my local env. So far, I can not reproduce it. But I changed the code logic as my proposal. Then, the query succeeded. Could you show me the code about create the finalOutputPath in ExecDriver? I would like to go through the code of dir creation. It may be helpful to find out the reproduce step. Thanks. Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14042974#comment-14042974 ] Navis commented on HIVE-7273: - You can see the code in ExecDriver#416 {code} Utilities.createTmpDirs(job, mWork); Utilities.createTmpDirs(job, rWork); {code} This finds FileSinkOperator which is not for bDynParts or isSkewedStoredAsSubDirectories and creates temporary directory for it. Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14042984#comment-14042984 ] George Wong commented on HIVE-7273: --- Thanks [~navis]. I will check it. Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14040537#comment-14040537 ] Navis commented on HIVE-7273: - The directory is expected to be created in ExecDriver before job submitting. Could you provide a query which can reproduce the situation? Fail of other tasks in the query also can make exceptions like above. Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14040387#comment-14040387 ] George Wong commented on HIVE-7273: --- I created this jira because Hive-4605 is closed by not reproducible. Looks like this issue exists in both 0.11 and 0.12. Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-7273) Hive job fails due to unable to rename reducer output file
[ https://issues.apache.org/jira/browse/HIVE-7273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14040392#comment-14040392 ] George Wong commented on HIVE-7273: --- I went through the code of FileSink operator The code is like this. {code:java} if ((bDynParts || isSkewedStoredAsSubDirectories) !fs.exists(finalPaths[idx].getParent())) { fs.mkdirs(finalPaths[idx].getParent()); } {code} I am wondering why we should check bDynParts and isSkewedStoredAsSubDirectories. In the code, the output is move to finalPath no matter what the values of bDynParts and isSkewedStoredAsSubDirectories are. Since the date move is not avoidable, why not change the code to the following to make sure the path exists before moving the file. {code:java} if (!fs.exists(finalPaths[idx].getParent())) { fs.mkdirs(finalPaths[idx].getParent()); } {code} Hive job fails due to unable to rename reducer output file -- Key: HIVE-7273 URL: https://issues.apache.org/jira/browse/HIVE-7273 Project: Hive Issue Type: Bug Components: Query Processor Affects Versions: 0.12.0 Reporter: George Wong We ran into this issue in our cluster. The error message is like this {noformat} org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to: hdfs://***:8020/tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.commit(FileSinkOperator.java:197) at org.apache.hadoop.hive.ql.exec.FileSinkOperator$FSPaths.access$300(FileSinkOperator.java:108) at org.apache.hadoop.hive.ql.exec.FileSinkOperator.closeOp(FileSinkOperator.java:867) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:588) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:597) at org.apache.hadoop.hive.ql.exec.ExecReducer.close(ExecReducer.java:309) at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:470) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:407) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:158) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1478) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:153) {noformat} The log of NameNode shows {noformat} 2014-06-16 20:43:38,582 WARN org.apache.hadoop.hdfs.StateChange: DIR* FSDirectory.unprotectedRenameTo: failed to rename /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_task_tmp.-ext-10002/_tmp.00_3 to /tmp/hive-svcckppi/hive_2014-06-16_20-24-09_584_6615934756634587679/_tmp.-ext-10002/00_3 because destination's parent does not exist {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)