Acquisizione del token di delega Kafka per il flusso di lavoro Oozie
Acquisire i token di delega Kafka da utilizzare con un flusso di lavoro Oozie.
-
Aggiungere le credenziali di tipo
kafkanel blocco delle credenziali inworkflow.xmle includere le proprietà riportate di seguito.oozie.kafka.bootstrap.servers : {Your kafka bootstrap servers} oozie.kafka.sasl.kerberos.service.name : kafka oozie.kafka.security.protocol : SASL_PLAINTEXT oozie.kafka.sasl.mechanism : GSSAPIIl campo
oozie.kafka.bootstrap.servers:è un elenco separato da virgole di coppie "host e porta" che sono gli indirizzi dei broker Kafka. Specificare uno o più valori.Per passare altre proprietà, aggiungere il prefisso
oozie.kafka.alla chiave della proprietà come mostrato sopra. È possibile passare questi dal sito Oozie oworkflow.xml.Nota
Le proprietà definite inworkflow.xmlavranno la precedenza maggiore rispetto al sito Oozie.Facoltativamente, è possibile inserire le proprietà da Ambari. Per ulteriori informazioni, vedere Immissione di proprietà mediante Ambari.
-
Includere le credenziali nell'azione del workflow:
<action name='mr-node' cred='my-kafka-creds'>esempio:
<workflow-app xmlns="uri:oozie:workflow:1.0" name="example-wf"> <credentials> <credential name="my-kafka-creds" type="kafka"> <property> <name>oozie.kafka.bootstrap.servers</name> <value>bootstrapServer1:6667,bootstrapServer2:6667,bootstrapServer3:6667,</value> </property> <property> <name>oozie.kafka.sasl.kerberos.service.name</name> <value>kafka</value> </property> <property> <name>oozie.kafka.security.protocol</name> <value>SASL_PLAINTEXT</value> </property> <property> <name>oozie.kafka.sasl.mechanism</name> <value>GSSAPI</value> </property> </credential> </credentials> <start to="mr-node"/> <action name="mr-node" cred='my-kafka-creds'> ... </action> </workflow-app> -
Utilizzare l'identificativo di testo
KAFKA_DELEGATION_TOKENper recuperare il token di delega Kafka dalla configurazione del job.Nota
-
Se si utilizza
AclAuthorizerper Kafka, assicurarsi che le ACL corrette siano impostate per gli utenti. Aggiungere le ACL sul broker Kafka come indicato di seguito.bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:tokenRequester --allow-host * --operation CreateTokens --user-principal User:tokenOwner -
Se si utilizza
RangerKafkaAuthorizerper Kafka, assicurarsi che siano impostati i criteri appropriati. In particolare, aggiungere il richiedente token (in questo caso l'utente Oozie) sottoall - User policye concedere l'autorizzazioneCreate TokenseDescribe Tokens. Ciò consente al richiedente del token di acquisire un token di delega per conto dell'utente che ha sottomesso il job.L'autorizzazione ACL o Ranger di cui sopra entra in vigore solo se viene utilizzata la rappresentazione. Ad esempio,
token requester != token owner.
- Il
Oozie server's Keytab and Principaldefinito sul sito Oozie (oozie.authentication.kerberos.keytabeoozie.authentication.kerberos.principal) viene utilizzato per l'autenticazione con il broker Kafka.
-
Immissione di proprietà tramite Ambari (facoltativo)
Immettere le proprietà di configurazione Kafka in Ambari per acquisire il token di delega Kafka per un flusso di lavoro Oozie.
- Accedi ad Apache Ambari.
- Nella barra degli strumenti laterale, in Servizi selezionare Oozie.
- Selezionare Config.
- Nella scheda Avanzate, passare al sito oozie personalizzato.
-
Selezionare Aggiungi proprietà e aggiungere le proprietà riportate di seguito.
-
oozie.kafka.bootstrap.servers: immettere i server bootstrap Kafka in un elenco separato da virgole di coppie "host e porta" che sono gli indirizzi dei broker Kafka. Specificare uno o più valori. -
oozie.kafka.sasl.kerberos.service.name: immetterekafka. -
oozie.kafka.security.protocol: immettereGSSAPI. -
oozie.kafka.security.protocol: immettereSASL_PLAINTEXT
-