如何在我的Storm jar中使用ACL访问kafka?

时间:2018-08-15 02:36:50

标签: apache-storm

在我不使用任何SASL或ACL的情况下使用kafka之前,它工作正常,现在我为我的kafka集群构建了SASL_PLAINTEXT,如何在我的Storm jar中访问我的kafka集群?

我的风暴版本:1.1.0 Kafka版本:0.10.1

我使用HDP-2.6.3.0-235

任何建议都会有所帮助。谢谢

1 个答案:

答案 0 :(得分:0)

这些是我要遵循的步骤,以在安全的环境中使用kafka进行风暴运行

1。您需要使用特定于hdp的依赖性进行风暴以启用安全协议属性

<repositories>
        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>hortonworks.extrepo</id>
            <name>Hortonworks HDP</name>
            <url>http://repo.hortonworks.com/content/repositories/releases</url>
        </repository>

        <repository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>hortonworks.other</id>
            <name>Hortonworks Other Dependencies</name>
            <url>http://repo.hortonworks.com/content/groups/public</url>
        </repository>
    </repositories>

,然后包含特定于风暴的hdp依赖项[根据您的hdp版本进行更改]

<storm-core.version>1.1.0.2.6.2.37-3</storm-core.version>
<dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-core</artifactId>
            <version>${storm-core.version}</version>
            <scope>provided</scope>
        </dependency>

2。现在,您需要在创建喷口时使用安全协议属性(除非使用特定于hdp的回购协议,否则将不可用)

spoutCfg.securityProtocol = "SASL_PLAINTEXT";

3。通过为适当的风暴用户提供适当的权限,在主题上使用acl命令

bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:storm-user --allow-principal User:zriskcanvas --consumer --producer  --group=* --topic testTopic

4。确保将风暴jaas-conf与ACL中提到的用户传递给每个节点