Thanks for your valuable inputs Robert, it helped me solve the issue.
While I tried -yD from flink run, like you mentioned and many other
combinations of the same, that didn't work out.

Finally it worked when I passed it from flink-conf.yaml with relative path.
Like below:

env.java.opts.jobmanager: -Djava.security.krb5.conf=./conf/krb5.conf
env.java.opts.taskmanager: -Djava.security.krb5.conf=./conf/krb5.conf
env.java.opts: -Djava.security.krb5.conf=./conf/krb5.conf

Regards,
Vijay

On Fri, Aug 14, 2020 at 12:42 PM Robert Metzger <rmetz...@apache.org> wrote:

> Hi Vijayendra,
>
> I'm not sure if -yD is the right argument as you've posted it: It is meant
> to be used for Flink configuration keys, not for JVM properties.
>
> With the Flink configuration "env.java.opts", you should be able to pass
> JVM properties.
> This should work: -yD env.java.opts="-D
> java.security.krb5.conf=./krb5.conf"
>
> You can validate if this setting has properly reached the JobManager /
> TaskManager JVM by accessing the logs through the Flink Web UI. There's a
> section at the top of the log file for "JVM Options:".
>
> If it still doesn't work, I would also recommend you validate that the
> files really end up on the machines as expected.
> Figure out a host that runs a Flink TaskManager, get the Flink directory
> (from the logs again), then ssh into the machine and go into the directory
> to see if the files are where you would expect them.
>
>
> I hope this helps,
> Robert
>
> On Fri, Aug 14, 2020 at 6:57 AM Vijayendra Yadav <contact....@gmail.com>
> wrote:
>
>> Hi Yangze,
>>
>> I tried the following: maybe I am missing something.
>> https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/cli.html
>>
>> -yt,--yarnship <arg>
>>
>> Run:
>> /usr/lib/flink/bin/flink run -m yarn-cluster
>> -yt ${app_install_path}/conf
>>
>> my KRB5.conf is in  ${app_install_path}/conf n master node (local build
>> path)
>>
>> When this folder is shipped to yarn, how should i reference this
>> KRB5.conf now in run command?
>>
>> I tried like:   -yD java.security.krb5.conf=./krb5.conf                \
>>
>> Didn't work this way. Please suggest, can file be used as relative path
>> ./krb5.conf or what is misinterpreted?
>>
>> Note: When we manually updated KRB5.conf on all cluster nodes in
>> /etc/KRB5.conf it was working. But I am trying to make it available as JVM
>> property.
>>
>> Regards,
>> Vijay
>>
>>
>> On Thu, Aug 13, 2020 at 9:21 PM Yangze Guo <karma...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> When deploying Flink on Yarn, you could ship krb5.conf by "--ship"
>>> command. Notice that this command only supports to ship folders now.
>>>
>>> Best,
>>> Yangze Guo
>>>
>>> On Fri, Aug 14, 2020 at 11:22 AM Vijayendra Yadav <contact....@gmail.com>
>>> wrote:
>>> >
>>> > Any inputs ?
>>> >
>>> > On Tue, Aug 11, 2020 at 10:34 AM Vijayendra Yadav <
>>> contact....@gmail.com> wrote:
>>> >>
>>> >> Dawid, I was able to resolve the keytab issue by passing the service
>>> name, but now I am facing the KRB5 issue.
>>> >>
>>> >> Caused by:
>>> org.apache.kafka.common.errors.SaslAuthenticationException: Failed to
>>> create SaslClient with mechanism GSSAPI
>>> >> Caused by: javax.security.sasl.SaslException: Failure to initialize
>>> security context [Caused by GSSException: Invalid name provided (Mechanism
>>> level: KrbException: Cannot locate default realm)]
>>> >>
>>> >> I passed KRB5 from yaml conf file like:
>>> >>
>>> >> env.java.opts.jobmanager: -Djava.security.krb5.conf=/path/krb5.conf
>>> >> env.java.opts.taskmanager: -Djava.security.krb5.conf=/path/krb5.conf
>>> >>
>>> >> How can I resolve this? Is there another way to pass KRB5?
>>> >>
>>> >> I also tried via option#1 from flink run command -D parameter.
>>> >>
>>> >> Regards,
>>> >> Vijay
>>> >>
>>> >>
>>> >> On Tue, Aug 11, 2020 at 1:26 AM Dawid Wysakowicz <
>>> dwysakow...@apache.org> wrote:
>>> >>>
>>> >>> Hi,
>>> >>>
>>> >>> As far as I know the approach 2) is the supported way of setting up
>>> Kerberos authentication in Flink. In the second approach have you tried
>>> setting the `sasl.kerberos.service.name` in the configuration of your
>>> KafkaConsumer/Producer[1]? I think this might be the issue.
>>> >>>
>>> >>> Best,
>>> >>>
>>> >>> Dawid
>>> >>>
>>> >>> [1]
>>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html#enabling-kerberos-authentication
>>> >>>
>>> >>>
>>> >>> On 09/08/2020 20:39, Vijayendra Yadav wrote:
>>> >>>
>>> >>> Hi Team,
>>> >>>
>>> >>> I am trying to stream data from kafkaconsumer using:
>>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html
>>> >>>
>>> >>> Here my KAFKA is Kerberos secured and SSL enabled.
>>> >>>
>>> >>> I am running my Flink streaming in yarn-cluster on EMR 5.31.
>>> >>>
>>> >>> I have tried to pass keytab/principal in following 2 Ways:
>>> >>>
>>> >>> 1) Passing as JVM property in Flink run Command.
>>> >>>
>>> >>> /usr/lib/flink/bin/flink run
>>> >>>    -yt ${app_install_path}/conf/
>>>              \
>>> >>>>
>>> >>>> -Dsecurity.kerberos.login.use-ticket-cache=false
>>>           \
>>> >>>> -yDsecurity.kerberos.login.use-ticket-cache=false
>>>            \
>>> >>>> -Dsecurity.kerberos.login.keytab=${app_install_path}/conf/keytab  \
>>> >>>> -yDsecurity.kerberos.login.keytab=${app_install_path}/conf/.keytab \
>>> >>>> -Djava.security.krb5.conf=${app_install_path}/conf/krb5.conf
>>>           \
>>> >>>> -yDjava.security.krb5.conf=${app_install_path}/conf/krb5.conf
>>>            \
>>> >>>> -Dsecurity.kerberos.login.principal=x...@xx.net                 \
>>> >>>> -yDsecurity.kerberos.login.principal= x...@xx.net                \
>>> >>>> -Dsecurity.kerberos.login.contexts=Client,KafkaClient
>>>            \
>>> >>>> -yDsecurity.kerberos.login.contexts=Client,KafkaClient
>>> >>>
>>> >>>
>>> >>> Here, I am getting the following Error, it seems like KEYTAB Was not
>>> transported to the run environment and probably not found.
>>> >>>
>>> >>> org.apache.kafka.common.KafkaException: Failed to construct kafka
>>> consumer
>>> >>> Caused by: java.lang.IllegalArgumentException: Could not find a
>>> 'KafkaClient' entry in the JAAS configuration. System property
>>> 'java.security.auth.login.config'
>>> >>>
>>> >>> 2) Passing from flink config:  /usr/lib/flink/conf/flink-conf.yaml
>>> >>>
>>> >>> security.kerberos.login.use-ticket-cache: false
>>> >>> security.kerberos.login.keytab:  ${app_install_path}/conf/keytab
>>> >>> security.kerberos.login.principal:  x...@xx.net
>>> >>> security.kerberos.login.contexts: Client,KafkaClient
>>> >>>
>>> >>> Here, I am getting the following Error,
>>> >>>
>>> >>> org.apache.kafka.common.KafkaException: Failed to construct kafka
>>> consumer
>>> >>> Caused by: org.apache.kafka.common.KafkaException:
>>> java.lang.IllegalArgumentException: No serviceName defined in either JAAS
>>> or Kafka config
>>> >>>
>>> >>>
>>> >>> Could you please help find, what are probable causes and resolution?
>>> >>>
>>> >>> Regards,
>>> >>> Vijay
>>> >>>
>>>
>>

Reply via email to