在我不使用任何SASL或ACL的情况下使用kafka之前,它工作正常,现在我为我的kafka集群构建了SASL_PLAINTEXT,如何在我的Storm jar中访问我的kafka集群?
我的风暴版本:1.1.0 Kafka版本:0.10.1
我使用HDP-2.6.3.0-235
任何建议都会有所帮助。谢谢
答案 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中提到的用户传递给每个节点