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

[SPARK-25753][CORE][2.4] Fix reading small files via BinaryFileRDD #26026

Closed
wants to merge 1 commit into from

Conversation

dhruve
Copy link
Contributor

@dhruve dhruve commented Oct 4, 2019

What changes were proposed in this pull request?

This is a clean cherry pick of #22725 from master to 2.4

This is a follow up of #21601, StreamFileInputFormat and WholeTextFileInputFormat have the same problem.

Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304 java.io.IOException: Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304 at org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat.getSplits(CombineFileInputFormat.java: 201) at org.apache.spark.rdd.BinaryFileRDD.getPartitions(BinaryFileRDD.scala:52) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:254) at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252) at scala.Option.getOrElse(Option.scala:121) at org.apache.spark.rdd.RDD.partitions(RDD.scala:252) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2138)

Why are the changes needed?

This is an existing bug which was fixed in master, but not back ported to 2.4.

Does this PR introduce any user-facing change?

No

How was this patch tested?

The original patch added a unit test.

Ran the unit test that was added in the original patch and manually verified the changes by creating a multiline csv and loading it in spark shell.

## What changes were proposed in this pull request?

This is a follow up of apache#21601, `StreamFileInputFormat` and `WholeTextFileInputFormat` have the same problem.

`Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304
java.io.IOException: Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304
        at org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat.getSplits(CombineFileInputFormat.java: 201)
	at org.apache.spark.rdd.BinaryFileRDD.getPartitions(BinaryFileRDD.scala:52)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:254)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252)
	at scala.Option.getOrElse(Option.scala:121)
	at org.apache.spark.rdd.RDD.partitions(RDD.scala:252)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2138)`

## How was this patch tested?
Added a unit test

Closes apache#22725 from 10110346/maxSplitSize_node_rack.

Authored-by: liuxian <liu.xian3@zte.com.cn>
Signed-off-by: Thomas Graves <tgraves@apache.org>
@dhruve
Copy link
Contributor Author

dhruve commented Oct 4, 2019

@dongjoon-hyun @tgravescs

@SparkQA
Copy link

SparkQA commented Oct 4, 2019

Test build #111782 has finished for PR 26026 at commit 27acb89.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@tgravescs
Copy link
Contributor

@dhruve can you update the description to say cherry-pick #22725 and move the How the patch was tested down to fit the format of the new PR template and put any additional info about testing that you did.

@dhruve dhruve changed the title [SPARK-25753][CORE] fix reading small files via BinaryFileRDD [SPARK-25753][CORE] Cherry pick #22725 - fix reading small files via BinaryFileRDD Oct 4, 2019
Copy link
Member

@srowen srowen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks OK as a cherry pick but yes update the description

@dhruve
Copy link
Contributor Author

dhruve commented Oct 4, 2019

Updated the description.

@dongjoon-hyun dongjoon-hyun changed the title [SPARK-25753][CORE] Cherry pick #22725 - fix reading small files via BinaryFileRDD [SPARK-25753][CORE][2.4] Fix reading small files via BinaryFileRDD Oct 4, 2019
Copy link
Member

@dongjoon-hyun dongjoon-hyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, LGTM. Thank you, @dhruve , @tgravescs , @srowen .
Merged to branch-2.4.

dongjoon-hyun pushed a commit that referenced this pull request Oct 4, 2019
### What changes were proposed in this pull request?
This is a clean cherry pick of  #22725 from master to 2.4

This is a follow up of #21601, `StreamFileInputFormat` and `WholeTextFileInputFormat` have the same problem.

`Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304
java.io.IOException: Minimum split size pernode 5123456 cannot be larger than maximum split size 4194304
        at org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat.getSplits(CombineFileInputFormat.java: 201)
	at org.apache.spark.rdd.BinaryFileRDD.getPartitions(BinaryFileRDD.scala:52)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:254)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252)
	at scala.Option.getOrElse(Option.scala:121)
	at org.apache.spark.rdd.RDD.partitions(RDD.scala:252)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2138)`

### Why are the changes needed?
This is an existing bug which was fixed in master, but not back ported to 2.4.

### Does this PR introduce any user-facing change?
No

### How was this patch tested?
The original patch added a unit test.

Ran the unit test that was added in the original patch and manually verified the changes by creating a multiline csv and loading it in spark shell.

Closes #26026 from dhruve/fix/SPARK-25753/2.4.

Authored-by: liuxian <liu.xian3@zte.com.cn>
Signed-off-by: Dongjoon Hyun <dhyun@apple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants