[ 
https://issues.apache.org/jira/browse/HADOOP-19091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17822274#comment-17822274
 ] 

Venkatasubrahmanian Narayanan commented on HADOOP-19091:
--------------------------------------------------------

[[email protected]] Will keep all that in mind when I work on the Hadoop 
patches, thanks.

 

Hive uses MRv1 and migrating it to MRv2 would be a lot of effort to switch it 
over to use PathOutputCommitter etc. internally, however, I will see if 
something similar to the factory design can be done with the committer class 
since that is configured explicitly for this design.

 

[~srahman] From the AM logs:

Job UUID job_1708973874189_0073 source JobID

Starting: Task committer attempt_1708973874189_0073_r_000000_1: 
commitJob(job_1708973874189_0073) 2024-02-29 18:05:05,766 [DEBUG] [App Shared 
Pool - #2] |impl.IOStatisticsStoreImpl|: Incrementing counter op_list_files by 
1 with final value 1 2024-02-29 18:05:05,766 [DEBUG] [App Shared Pool - #2] 
|s3a.S3AFileSystem|: 
listFiles(s3a://hive-east-1-bucket/emblembasic/__magic/__magic/job-job_1708973874189_0073,
 false) 2024-02-29 18:05:05,767 [DEBUG] [App Shared Pool - #2] 
|s3a.S3AFileSystem|: Requesting all entries under 
emblembasic/__magic/__magic/job-job_1708973874189_0073/ with delimiter '/'

>From the task logs:

Job UUID job_17089738741890_0073 source JobID

Saving work of attempt_17089738741890_0073_r_000000_0 to 
s3a://hive-east-1-bucket/emblembasic/__magic/__magic/job-job_17089738741890_0073/task_17089738741890_0073_r_000000.pendingset

 

It's a very subtle difference(there's an extra 0 in the ID/path used by the 
task). The post-commitJob cleanup does delete the files since it deletes 
everything under the __magic directory instead of looking under the job dir, 
commitJob itself just fails to find the pending set when it lists the files so 
it doesn't commit the results..

> Add support for Tez to MagicS3GuardCommitter
> --------------------------------------------
>
>                 Key: HADOOP-19091
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19091
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs/s3
>    Affects Versions: 3.3.6
>         Environment: Pig 17/Hive 3.1.3 with Hadoop 3.3.3 on AWS EMR 6-12.0
>            Reporter: Venkatasubrahmanian Narayanan
>            Assignee: Venkatasubrahmanian Narayanan
>            Priority: Major
>         Attachments: 0001-AWS-Hive-Changes.patch, 
> 0002-HIVE-27698-Backport-of-HIVE-22398-Remove-legacy-code.patch, 
> HADOOP-19091-HIVE-WIP.patch
>
>
> The MagicS3GuardCommitter assumes that the JobID of the task is the same as 
> that of the job's application master when writing/reading the .pendingset 
> file. This assumption is not valid when running with Tez, which creates 
> slightly different JobIDs for tasks and the application master.
>  
> While the MagicS3GuardCommitter is intended only for MRv2, it mostly works 
> fine with an MRv1 wrapper with Hive/Pig (with some minor changes to Hive) run 
> in MR mode. This issue only crops up when running queries with the Tez 
> execution engine. I can upload a patch to Hive 3.1 to reproduce this error on 
> EMR if needed.
>  
> Fixing this will probably require work from both Tez and Hadoop, wanted to 
> start a discussion here so we can figure out how exactly we go about this.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to