Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 与Kerberized Zookeeper的非Kerberized Kafka代理连接_Apache Kafka_Cluster Computing_Apache Zookeeper_Kerberos_Ambari - Fatal编程技术网

Apache kafka 与Kerberized Zookeeper的非Kerberized Kafka代理连接

Apache kafka 与Kerberized Zookeeper的非Kerberized Kafka代理连接,apache-kafka,cluster-computing,apache-zookeeper,kerberos,ambari,Apache Kafka,Cluster Computing,Apache Zookeeper,Kerberos,Ambari,我找不到关于这个问题的任何信息,所以如果有人能在这方面帮助我,我会很高兴 我有一个Kerberized集群,提供诸如Hbase、MapReduce、HDFS、Zookeeper等服务,。。。所有的人都在工作 让我们想象一下,我想在集群中加入一些卡夫卡经纪人,但我确实不想卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫 我不知道我是否遗漏了什么,一些参数。。。也许

我找不到关于这个问题的任何信息,所以如果有人能在这方面帮助我,我会很高兴

我有一个Kerberized集群,提供诸如Hbase、MapReduce、HDFS、Zookeeper等服务,。。。所有的人都在工作

让我们想象一下,我想在集群中加入一些卡夫卡经纪人,但我确实卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫卡卡夫

我不知道我是否遗漏了什么,一些参数。。。也许我是。。但是,是否可以告知动物园管理员也必须接受某些节点或某些特定目录(如示例中的卡夫卡)的
纯文本
请求:

动物园管理员:2181/卡夫卡


问题是:

  • 是否有任何选择包括一个非kerberized Kafka经纪人,并使其与集群中已经kerberized的Zookeeper对抗

如果您需要以下配置:

[zookeeper] <----- SASL ----> [kafka] <----- non-authenticated request ---> [clients]
[动物园管理员][卡夫卡][客户]
那么是的,这是可能的。你只需要

  • 为将用于与Zookeeper通信的代理创建主体(带键标签)
  • 配置Zookeeper ACL,为该用户设置对节点的访问权限
  • 将keytab复制到代理并按如下方式配置Kafka jaas文件:
    
    ZookeeperClient{
    需要com.sun.security.auth.module.Krb5LoginModule
    useKeyTab=true
    storeKey=true
    keyTab=“/path/to/keyTab”
    本金=”user@REALM";
    };
    

  • 然后,在卡夫卡配置中设置
    zookeeper.set.acl=true
    ,但不要设置任何
    authorizer.class.name
    (这将为卡夫卡消费者和生产者启用身份验证)

    如果您需要如下配置:

    [zookeeper] <----- SASL ----> [kafka] <----- non-authenticated request ---> [clients]
    
    [动物园管理员][卡夫卡][客户]
    
    那么是的,这是可能的。你只需要

  • 为将用于与Zookeeper通信的代理创建主体(带键标签)
  • 配置Zookeeper ACL,为该用户设置对节点的访问权限
  • 将keytab复制到代理并按如下方式配置Kafka jaas文件:
    
    ZookeeperClient{
    需要com.sun.security.auth.module.Krb5LoginModule
    useKeyTab=true
    storeKey=true
    keyTab=“/path/to/keyTab”
    本金=”user@REALM";
    };
    

  • 然后,在卡夫卡配置中设置
    zookeeper.set.acl=true
    ,但不要设置任何
    authorizer.class.name
    (这将为卡夫卡消费者和生产者启用身份验证)

    谢谢Mariusz!我会尽快尝试。只是一个问题:要使此配置有效,是否需要更改zookeeper默认节点?我的意思是,动物园管理员:2181(默认值)仍然有效,对吗?我的意思是,这个非Kerberos卡夫卡不会“干扰”其他同样连接到zookeeper:2181的Kerberos卡夫卡,对吗?提前谢谢!!如果要在一个zookeeper上使用2个(或多个)Kafka,应首先为每个zookeeper创建一个根节点,并将连接字符串传递给该节点,例如:
    zookeeper:2181/kafka1
    zookeeper:2181/kafka2
    。如果你这样做,不同的集群将被完全分离。Mariusz,非常感谢。我终于可以让非kerberos代理与kerberized动物园管理员一起工作了。(我在最后一条评论中做了一个错误的陈述,不是说另一个卡夫卡,而是另一个连接到zookeeper的进程,但我测试了这个配置没有损害任何其他服务)。总之,最后一个问题让我很感兴趣。。。0.9使用者仍然连接到zookeeper以使用消息…如果不使用特定主体,它如何工作?或者,当您使用控制台使用者时,卡夫卡是否使用将(客户端)连接到zookeeper的主体??非常感谢!!这很奇怪-如果你使用旧的consumer(在ZK中有偏移量)而没有在ZK中进行身份验证,并且在同一个ZK中保护了Kafka节点-它不应该工作:-)完全是我的错,我知道这有点奇怪。。。我运行的是ubuntu的默认zookeeper,由于网络问题,我不得不多次重置,在运行消费者和生产者时,我不记得启动kerberized zookeeper。哎哟再次衷心感谢!谢谢Mariusz!我会尽快尝试。只是一个问题:要使此配置有效,是否需要更改zookeeper默认节点?我的意思是,动物园管理员:2181(默认值)仍然有效,对吗?我的意思是,这个非Kerberos卡夫卡不会“干扰”其他同样连接到zookeeper:2181的Kerberos卡夫卡,对吗?提前谢谢!!如果要在一个zookeeper上使用2个(或多个)Kafka,应首先为每个zookeeper创建一个根节点,并将连接字符串传递给该节点,例如:
    zookeeper:2181/kafka1
    zookeeper:2181/kafka2
    。如果你这样做,不同的集群将被完全分离。Mariusz,非常感谢。我终于可以让非kerberos代理与kerberized动物园管理员一起工作了。(我在最后一条评论中做了一个错误的陈述,不是说另一个卡夫卡,而是另一个连接到zookeeper的进程,但我测试了这个配置没有损害任何其他服务)。总之,最后一个问题让我很感兴趣。。。0.9使用者仍然连接到zookeeper以使用消息…如果不使用特定主体,它如何工作?或者,当您使用控制台使用者时,卡夫卡是否使用将(客户端)连接到zookeeper的主体??非常感谢!!这很奇怪-如果你使用旧的consumer(在ZK中有偏移量)而没有在ZK中进行身份验证,并且在同一个ZK中保护了Kafka节点-它不应该工作:-)完全是我的错,我知道这有点奇怪。。。我运行的是ubuntu的默认zookeeper,由于网络问题,我不得不多次重置,并且不记得启动我的kerber