Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace buggy pig rank function with custom solution #432

Open
marekhorst opened this issue Dec 4, 2018 · 1 comment
Open

Replace buggy pig rank function with custom solution #432

marekhorst opened this issue Dec 4, 2018 · 1 comment
Assignees

Comments

@marekhorst
Copy link
Member

marekhorst commented Dec 4, 2018

This issue was originally reported in openaire/iis#927 but since it requires changes in CoAnSys PIG script I am reporting it once again here.

Pig RANK operation related problems ware mitigated within OpenAIRE scope several times already: either by extending the amount of memory (openaire/iis#796, openaire/iis#807) or by refactoring PIG script to minimize memory footprint during the RANK operation (#425).

After recent increase in number of publications (to 37M) we are struggling again with the memory related problem:

java.lang.OutOfMemoryError
    at java.io.ByteArrayOutputStream.hugeCapacity(ByteArrayOutputStream.java:123)
    at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:117)
    at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
    at java.io.DataOutputStream.write(DataOutputStream.java:107)
    at java.io.DataOutputStream.writeUTF(DataOutputStream.java:401)
    at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)

full log is available here: https://pastebin.com/dk2C8wLF

Pig execution plan is available here:
https://pastebin.com/bAUsCNjb

claiming again RANK operation to be the phase when the map task failed:

Failed Jobs:
JobId   Alias   Feature Message Outputs
job_1524597382992_21544 wc_ranked   ORDER_BY    Message: Job failed!   
@marekhorst marekhorst self-assigned this Dec 4, 2018
@marekhorst
Copy link
Member Author

Apparently there is an alternative processing path within COANSYS documents similarity involving custom ranking. The problem is this script at some point became incompatible with the rest of the documents similarity algorithm (as described in #427) but we could definitely use custom rank serializer and replace the following line causing problems:

wc_ranked = rank wc by count asc;

with custom ranking solution:

wc_tmp = order wc by count asc parallel 1;
STORE wc_tmp INTO '$outputPath$WORD_RANK_HR' using pl.edu.icm.coansys.similarity.pig.serializers.RankStorage();
wc_ranked = LOAD '$outputPath$WORD_RANK_HR' as (rank_num:long, count:long, term:chararray);

Firsts tests on 37M (and on 103M) of documents proved the proposed solution eliminates the memory related issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant