storm-kafka 訪問帶 kerberos 權限的 kafka
阿新 • • 發佈:2017-08-29
spa plaintext log 地址 url 設置 lib hosts lease
之前項目裏面 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