apache / apache/uniffle

[FEATURE] Introduce the general client conf for mr/spark

Open
#661 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
454
Forks
172
Avg merge
5d 17h
Merged PRs (30d)
5

Description

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

### Search before asking

- [X] I have searched in the [issues](https://github.com/apache/incubator-uniffle/issues?q=is%3Aissue) and found no similar issues.

### Describe the feature

Introduce the general client conf for mr/spark
1. Introduce the class of `RssClientConf` to set the general configOptions for mr/spark
2. Introduce the class of `RssSparkClientConf` to set the spark exclusive `configOptions` and to construct the RssConf from the `SparkConf`
3. Introduce the class of `RssMRClientConf`

I proposed a PR #200 before, but it looks this part needs to do much changes.

### Motivation

Now in mr/spark client conf, we don't obey the rule of uniffle `configOptions`. It causes the some problems as follows

1. When introducing the client general conf, we have to write three times in `RssSparkConfig`/ `RssClientConfig` / `RssMRConfig`. Actually there is no need to leave dirty works for developers.
2. If when introducing a general method for MR/Spark and need to some configs from Rss client conf. In current implementation, we have to introduce extra class for method's params. If we having the general RssClientConf, it will benifit more.

### Describe the solution

_No response_

### Additional context

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start by comparing the existing RssSparkConfig, RssClientConfig, and RssMRConfig classes and how SparkConf is converted into RssConf. Review the earlier PR #200 and the current configuration options before deciding how RssClientConf, RssSparkClientConf, and RssMRClientConf should divide responsibilities. Done means general options are defined once and Spark- or MR-specific options remain isolated without duplicated configuration work.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.