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

Ship kafka-clients in binary distribution tarball without compression libs #6836

Closed
wants to merge 1 commit into from

Conversation

pan3793
Copy link
Member

@pan3793 pan3793 commented Dec 4, 2024

Why are the changes needed?

I'd like to include kafka-clients in the Kyuubi binary distribution tarball to enable the out-of-box support for sinking Kyuubi events to Kafka.

  • Kafka is an important component in modern data platforms, and is a defacto message queue implementation, especially in the big data domain
  • kafka-clients is released under Apache License V2, has no legal issue
  • kafka-clients is quite a light lib, has no third-party deps except for slf4j-api and a few optional compression libs
  • kafka-clients uses "none" compression as default, in practice, "gzip"(delegate to JDK gzip algorithm, no additional libs are required) already performs well for non-extreme cases

Additionally, LOG4J2 has a built-in KafkaAppender that supports sinking logging to Kafka, which also requires kafka-clients in the classpath, I have some initial ideas to forward both Kyuubi server's and engine bootstrap processes log to Kafka in a structured format, will send another PR to add docs to guide users in configuring that.

How was this patch tested?

Review

Was this patch authored or co-authored using generative AI tooling?

No.

@github-actions github-actions bot added kind:infra license, community building, project builds, asf infra related, etc. kind:build labels Dec 4, 2024
@pan3793 pan3793 added this to the v1.10.1 milestone Dec 4, 2024
@pan3793 pan3793 self-assigned this Dec 4, 2024
@pan3793 pan3793 requested a review from bowenliang123 December 4, 2024 08:23
@@ -1053,7 +1053,20 @@
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
<optional>true</optional>
Copy link
Member Author

Choose a reason for hiding this comment

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

seems the build/dependency.sh does not correctly handle optional

@@ -306,8 +306,6 @@ io.vertx:vertx-grpc
com.squareup.retrofit2:retrofit
com.squareup.okhttp3:okhttp
org.apache.kafka:kafka-clients
org.lz4:lz4-java
org.xerial.snappy:snappy-java
Copy link
Member Author

Choose a reason for hiding this comment

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

the LICENSE/NOTICE should match the real content of artifacts

@pan3793 pan3793 requested a review from cxzl25 December 4, 2024 08:30
@codecov-commenter
Copy link

codecov-commenter commented Dec 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 0.00%. Comparing base (eb1b599) to head (b069eb1).
Report is 3 commits behind head on master.

Additional details and impacted files
@@          Coverage Diff           @@
##           master   #6836   +/-   ##
======================================
  Coverage    0.00%   0.00%           
======================================
  Files         687     687           
  Lines       42441   42441           
  Branches     5793    5793           
======================================
  Misses      42441   42441           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@pan3793 pan3793 closed this in f2cacd3 Dec 5, 2024
pan3793 added a commit that referenced this pull request Dec 5, 2024
…thout compression libs

### Why are the changes needed?

I'd like to include `kafka-clients` in the Kyuubi binary distribution tarball to enable the out-of-box support for sinking Kyuubi events to Kafka.

- Kafka is an important component in modern data platforms, and is a defacto message queue implementation, especially in the big data domain
- `kafka-clients` is released under Apache License V2, has no legal issue
- `kafka-clients` is quite a light lib, has no third-party deps except for `slf4j-api` and a few optional compression libs
- `kafka-clients` uses "none" compression as default, in practice, "gzip"(delegate to JDK gzip algorithm, no additional libs are required) already performs well for non-extreme cases

Additionally, LOG4J2 has a built-in `KafkaAppender` that supports sinking logging to Kafka, which also requires `kafka-clients` in the classpath, I have some initial ideas to forward both Kyuubi server's and engine bootstrap processes log to Kafka in a structured format, will send another PR to add docs to guide users in configuring that.

### How was this patch tested?

Review

### Was this patch authored or co-authored using generative AI tooling?

No.

Closes #6836 from pan3793/kafka-lib.

Closes #6836

b069eb1 [Cheng Pan] Ship kafka-clients in binary distribution tarball without compression libs

Authored-by: Cheng Pan <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
(cherry picked from commit f2cacd3)
Signed-off-by: Cheng Pan <[email protected]>
@pan3793
Copy link
Member Author

pan3793 commented Dec 5, 2024

Thanks, merged to master/1.10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:build kind:infra license, community building, project builds, asf infra related, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants