-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Kafka Connect: Add kerberos authentication option #10173
Conversation
kafka-connect/build.gradle
Outdated
@@ -43,6 +43,7 @@ project(":iceberg-kafka-connect:iceberg-kafka-connect") { | |||
implementation "com.fasterxml.jackson.core:jackson-core" | |||
implementation "com.fasterxml.jackson.core:jackson-databind" | |||
implementation libs.avro.avro | |||
implementation libs.hadoop3.client |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not introduce a Hadoop dependency to the core library.
@@ -28,6 +28,8 @@ | |||
import java.util.Set; | |||
import java.util.UUID; | |||
import java.util.stream.Collectors; | |||
import org.apache.hadoop.conf.Configuration; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We want to avoid dependencies on Hadoop. Take a look at how we initialize the Hadoop config in Utilities
using reflection.
@bryanck |
@bryanck |
Thanks for the submission @Dawnpool , one question I have is if we can use the existing facility for setting Hadoop properties, i.e. via the |
@bryanck You can see the HDFS sink connector also does accept configs for Kerberos authentication separately, even though it has Feel free to ask if you have any more questions :) |
Hi @bryanck , |
@Dawnpool I'd prefer to keep Hadoop/HDFS specific code out of the sink, beyond loading generic properties as we're doing now. IIRC you can set the user principal via an environment variable. I have this branch I'm working on to add in the runtime distribution if you want to try that to test. You might want to investigate how the Flink sink handles this without special properties. If it turns out we do need it, I feel like it might belong in HadoopFileIO, rather than here. |
Hi @bryanck |
@Dawnpool sorry for the delayed reply. With the Flink Iceberg sink, I don't believe there are kerberos-specific options, if you could point those out that would be helpful. |
@bryanck |
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the [email protected] list. Thank you for your contributions. |
@bryanck |
Hi @juanluhidalgo |
@bryanck @juanluhidalgo |
@Dawnpool if you can share the new PR link once it's created it would be great. |
@juanluhidalgo |
Hello,
I am making the same PR as the one in the original repository because I was told that it is being moved to this core repository.
I was going to use this connector for hdfs, but I have noticed it does not support Kerberos authentication.
To address this, I have implemented Kerberos authentication functionality along with related options.
I have used the existing hdfs sink connector code as a reference, which already does support Kerberos authentication. (document link)
An example config would look like:
It seems that the code hasn't been fully migrated to this core repository yet and I am aware of there should be further tasks such as updating README and adding test code, but I want to share the core idea with you first for initial feedback.
Please take a look. Thank you.