storm-kafka 访问带 kerberos 权限的 kafka

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了storm-kafka 访问带 kerberos 权限的 kafka相关的知识,希望对你有一定的参考价值。

之前项目里面 pom 里面的 storm-kafka 的依赖版本是 1.0.1 或 1.1.0 这两个版本的 KafkaSpout 的  SpoutConfig 都是无法设置 securityProtocol 的。

如果强行设置会报 Exception in thread "main" java.lang.NoSuchFieldError: securityProtocol

而 HDP 2.5.0.0-1245 里面的 “定制版”。 pom 如下:

<dependency>
    <groupId>org.apache.storm</groupId>
    <artifactId>storm-kafka</artifactId>
    <version>1.0.1.2.5.0.0-1245</version>
</dependency>

当然,此版本号过于特殊, maven central 里面是找不到的。

在这 http://repo.spring.io/libs-release/org/apache/storm/storm-kafka/1.0.1.2.5.0.0-1245/

在 pom 里面配置一下就可以了,或者把这个地址加到 nexus 私服上。

    <repositories>
        <repository>
            <id>spring-lib-release</id>
            <url>http://repo.spring.io/libs-release/</url>
        </repository>
    </repositories>

 

其它的就简单了。

下面是整体的 dependency

<dependencies>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>0.10.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.10.0.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-kafka</artifactId>
            <version>1.0.1.2.5.0.0-1245</version>
        </dependency>
        <dependency>
            <groupId>org.apache.storm</groupId>
            <artifactId>storm-core</artifactId>
            <version>1.1.0</version>
            <scope>${storm.scope}</scope>
        </dependency>
    </dependencies>

核心代码,2333:

 SpoutConfig spoutConfig = new SpoutConfig(hosts, topic, zkRoot, clientId);
        spoutConfig.securityProtocol = "SASL_PLAINTEXT";

 

以上是关于storm-kafka 访问带 kerberos 权限的 kafka的主要内容,如果未能解决你的问题,请参考以下文章

2017.4.11 storm-kafka测试

storm-kafka

hadoopClient cannot authenticate via:[TOKEN, KERBEROS] 的错误 protocol doesn‘t use kerberos

Storm-Kafka 多个 spout,如何分担负载?

kafka带kerberos和sasl安全认证:命令行消费指定topic数据

CDH-Kerberos环境下使用flume消费带Sentry认证的kafka数据保存到hdfs中