CDH 5.3.6から5.10.0にアップグレードし、カフカのトピックに書き込もうとするとエラーが発生しました。すべてのデフォルト設定があり、SSLまたはKerberos認証は有効になっていません。コンソールプロデューサーを使用してトピックの1つに書き込むとき、このエラーが発生します。Kafka on Cloudera - テスト= TOPIC_AUTHORIZATION_FAILED
/usr/bin/kafka-console-producer --broker-list = myhost1.dev.com:9092、myhost2.dev COM:、
2017-03-06 21:00:26,964 WARN org.apache.sentry.provider.common.HadoopGroupMappingService: Unable to obtain groups for ANONYMOUS
java.io.IOException: No groups found for user ANONYMOUS
at org.apache.hadoop.security.Groups.noGroupsForUser(Groups.java:190)
at org.apache.hadoop.security.Groups.getGroups(Groups.java:210)
at org.apache.sentry.provider.common.HadoopGroupMappingService.getGroups(HadoopGroupMappingService.java:60)
at org.apache.sentry.provider.common.ResourceAuthorizationProvider.getGroups(ResourceAuthorizationProvider.java:167)
at org.apache.sentry.provider.common.ResourceAuthorizationProvider.doHasAccess(ResourceAuthorizationProvider.java:97)
at org.apache.sentry.provider.common.ResourceAuthorizationProvider.hasAccess(ResourceAuthorizationProvider.java:91)
at org.apache.sentry.kafka.binding.KafkaAuthBinding.authorize(KafkaAuthBinding.java:212)
at org.apache.sentry.kafka.authorizer.SentryKafkaAuthorizer.authorize(SentryKafkaAuthorizer.java:63)
at kafka.server.KafkaApis$$anonfun$kafka$server$KafkaApis$$authorize$2.apply(KafkaApis.scala:321)
at kafka.server.KafkaApis$$anonfun$kafka$server$KafkaApis$$authorize$2.apply(KafkaApis.scala:321)
at scala.Option.map(Option.scala:146)
at kafka.server.KafkaApis.kafka$server$KafkaApis$$authorize(KafkaApis.scala:321)
at kafka.server.KafkaApis$$anonfun$30.apply(KafkaApis.scala:702)
at kafka.server.KafkaApis$$anonfun$30.apply(KafkaApis.scala:702)
at scala.collection.TraversableLike$$anonfun$partition$1.apply(TraversableLike.scala:314)
at scala.collection.TraversableLike$$anonfun$partition$1.apply(TraversableLike.scala:314)
at scala.collection.immutable.Set$Set1.foreach(Set.scala:94)
at scala.collection.TraversableLike$class.partition(TraversableLike.scala:314)
at scala.collection.AbstractTraversable.partition(Traversable.scala:104)
at kafka.server.KafkaApis.handleTopicMetadataRequest(KafkaApis.scala:702)
at kafka.server.KafkaApis.handle(KafkaApis.scala:79)
at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:60)
at java.lang.Thread.run(Thread.java:745)
私はこれに対する解決策を探してきました:9092 --topicテスト
17/03/06 21:00:57 INFO utils.AppInfoParser: Kafka version : 0.10.0-kafka-2.1.0
17/03/06 21:00:57 INFO utils.AppInfoParser: Kafka commitId : unknown
x
17/03/06 21:00:59 WARN clients.NetworkClient: Error while fetching metadata with correlation id 0 : {test=TOPIC_AUTHORIZATION_FAILED}
は/ var/log /カフカの/を見ると、私はこれらの例外の束を見ます今まで空になってしまった。 ANONYMOUSユーザーをどこかのグループに割り当てる必要はありますか? CDH 5.3.6のトピックにメッセージを書き込めましたが、アップグレードで何か問題が発生しているようです。
CDH 5.10.0にアップグレードしたあと、helloWorld/QuickstartのサンプルをDEV Kafkaで再び動作させようとしています。 Clouderaのマネージャで
-----------------一時的な回避策溶液---
5.10カフカ構成でsuper.users性があります。そのリストにANONYMOUSを追加すると、私は自分の話題から生産し消費することができました。
私はすでに/opt/cloudera/parcels/KAFKA-2.1.0-1.2.1.0.p0.115/etc/kafka/conf.dist/server.propertiesでこれをやってみましたが、これは効果がありませんでした。したがって、Clouderaは他の場所でこれらの値を管理している必要があります。
_authorizer.class.name_に設定した値を確認できますか? KerberosやSSLが設定されていない場合でも、ここで何かが設定されていてもACLを強制することができます。接続しているすべてのユーザはログに記録されている「ANONYMOUS」と認証されます。 –
私は/opt/cloudera/parcels/KAFKA-2.1.0-1.2.1.0.p0.115/etc/kafka/conf.dist/server.propertiesを次の行に変更しました:authorizer.class.name = kafka.security。 auth.SimpleAclAuthorizerしかし、それは重要ではないようで、私はそれが正しいファイルであるかどうか、または変更が有効になったかどうかを確認する方法が不明であった。 – medloh
うんんん、これが原因です(ファイルについてはわかりませんが、フィットするようです)。その行では、カフカにすべての接続試行にACLを適用するように指示します。これらの試行はすべて「ANONYMOUS」に反対します。私はその行を削除することをお勧めしたいと思います。あるいは、同じ効果があるはずの設定でスーパーユーザーとしてANONYMOUSを設定できますが、追加のセキュリティは提供されませんので、実際には役に立ちません。 –