java kafka权限_rsyslog 接入权限认证的Kafka集群

说明:

kafka权限接入包含两种方式,了解具体接入可参考

本案例使用kafka的第二种使用方式,案例如下:

Icon

SparkConf sparkConf = new SparkConf()

.setAppName("JavaSparkStreamingSQLKafkaExample");

JavaStreamingContext ssc = new JavaStreamingContext(sparkConf,

Durations.seconds(30));

//传入参数

String username = "username";

String password = "password";

String brokers = args[0];

String topic = args[1];

String groupId = args[2];

boolean enableSecurity=true;

// 设置要读取的 Topic 列表

Set topicsSet = new HashSet<>();

topicsSet.add(topic);

//kafka 参数设置

Map kafkaParams = new HashMap<>();

kafkaParams.put("bootstrap.servers", brokers);

kafkaParams.put("key.deserializer",

"org.apache.kafka.common.serialization.StringDeserializer");

kafkaParams.put("value.deserializer",

"org.apache.kafka.common.serialization.StringDeserializer");

kafkaParams.put("group.id", groupId);

kafkaParams.put("auto.offset.reset", "latest");

kafkaParams.put("fetch.min.bytes", "4096");

kafkaParams.put("enable.auto.commit", "false");

// 设置 kafka 安全验证部分

if (enableSecurity) {

kafkaParams.put("sasl.mechanism", "PLAIN");

kafkaParams.put("security.protocol", "SASL_PLAINTEXT");

kafkaParams.put("sasl.jaas.config","org.apache.kafka.common.security.plain.PlainLoginModule required username=\"" + username + "\" password=\"" + password + "\";");

}

JavaInputDStream> directStream = KafkaUtils

.createDirectStream(ssc, LocationStrategies.PreferConsistent(),

ConsumerStrategies.Subscribe(topicsSet,kafkaParams));

//业务操作

JavaDStream lines = directStream.map(new Function,String>() {

@Override

public String call(ConsumerRecord record) {

// 获取 Kafka 数据内容

return record.value().toString();

}

});

//开始计算

ssc.start();

ssc.awaitTermination();

注意:

1、推荐依赖的jar包

kafka依赖的jar包 版本请使用  0.10.2.1 低版本不支持权限认证

org.apache.spark

spark-core_2.11

2.1.0

org.apache.spark

spark-streaming_2.11

2.1.0

org.apache.spark

spark-streaming-kafka-0-10_2.11

2.1.0

org.apache.kafka

kafka-clients

0.10.2.1

2、申请kafka权限时请说明使用spark消费。

原因:spark 在消费kafka 数据时使用的 Group id 与程序中设置的Group ID不一致,会加前缀:spark-executor-

举例:申请的Group id为 consumer-group, 但是spark excutor中会使用 spark-executor-consumer-group

因此需要同时申请:consumer-group 和  spark-executor-consumer-group

喜欢 (0)or分享 (0)

eb21f6dd870983d3571c1960770c09cb.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值