2017-03-02 5 views
1

私は、主にカフカと災害復旧フェールオーバーに関するアドバイスを探しています。 使用する方法はありますかカフカCNAMEs/load balancerKerberosKerberosを使用する場合、カフカからCNAME /ロードバランサまで?

試してみると、以下のSPNエラーが発生します。これは理にかなっており、私はこの行動を完全に期待しています。 私はこの作業を描くことができる唯一の方法は、接続を確立する前に、Javaクライアント・コードにCNAMEリゾルバを含めることであろう。

#Using the New Consumer API 
#On any new connections, do the following: 
1) Provide CNAME hostname in config 
2) Resolve CNAME to list of A records for broker hosts 
3) Pass these into the New Consumer as the bootstrap servers 

これは動作するはずです、しかし、それは、カスタムコードを伴うだろう。

同じ概念がトピックへの公開に適用されます。

これに頼ることなく機能するアイデアはありますか?

私はCloudera管理のkeytabディストリビューションでCDH 5を使用しています。


コンシューマーログ

17/03/01 14:12:06 DEBUG consumer.KafkaConsumer: Subscribed to topic(s): build_smoke_test 
17/03/01 14:12:06 DEBUG clients.NetworkClient: Initiating connection to node -1 at lb.cdh-poc-cluster.internal.cdhnetwork:9093. 
17/03/01 14:12:06 DEBUG authenticator.SaslClientAuthenticator: Set SASL client state to SEND_HANDSHAKE_REQUEST 
17/03/01 14:12:06 DEBUG authenticator.SaslClientAuthenticator: Creating SaslClient: [email protected];service=kafka;serviceHostname=lb.cdh-poc-cluster.internal.cdhnetwork;mechs=[GSSAPI] 
17/03/01 14:12:06 DEBUG network.Selector: Connection with lb.cdh-poc-cluster.internal.cdhnetwork/172.3.1.10 disconnected 
java.io.EOFException 
    at org.apache.kafka.common.network.SslTransportLayer.read(SslTransportLayer.java:488) 
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:81) 

Brokerは

2017-03-01 14:12:08,330 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Set SASL server state to HANDSHAKE_REQUEST 
2017-03-01 14:12:08,330 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Handle Kafka request SASL_HANDSHAKE 
2017-03-01 14:12:08,330 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Using SASL mechanism 'GSSAPI' provided by client 
2017-03-01 14:12:08,331 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Creating SaslServer for kafka/[email protected].CDHNETWORK with mechanism GSSAPI 
2017-03-01 14:12:08,331 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Set SASL server state to AUTHENTICATE 
2017-03-01 14:12:08,334 DEBUG org.apache.kafka.common.security.authenticator.SaslServerAuthenticator: Set SASL server state to FAILED 
2017-03-01 14:12:08,334 DEBUG org.apache.kafka.common.network.Selector: Connection with lb.cdh-poc-cluster.internal.cdhnetwork/172.3.1.10 disconnected 
java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)] 
    at org.apache.kafka.common.security.authenticator.SaslServerAuthenticator.authenticate(SaslServerAuthenticator.java:243) 
    at org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:64) 
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:318) 
    at org.apache.kafka.common.network.Selector.poll(Selector.java:283) 
    at kafka.network.Processor.poll(SocketServer.scala:472) 
    at kafka.network.Processor.run(SocketServer.scala:412) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level (Mechanism level: Checksum failed)] 
    at com.sun.security.sasl.gsskerb.GssKrb5Server.evaluateResponse(GssKrb5Server.java:199) 
    at org.apache.kafka.common.security.authenticator.SaslServerAuthenticator.authenticate(SaslServerAuthenticator.java:228) 
    ... 6 more 

答えて

0

はあなたのCNAME(に対して登録SPNを持っていない場合、それはまた、解決策になるかもしれませんでしたログ)?

+2

答えを言い換えてください。純粋な質問として簡単に読むことができます。言い換えれば、問題を解決する方法を提案していることがより明確になります。 – GhostCat

関連する問題