ambari java api使用_Ambari 上使用 Kakfa

以下内容是针对在Ambari上启用了Kerberos认证的情况下处理的。首先开启ranger权限管理

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png配置admin用户权限

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

控制台使用方法

消费者kafka-console-consumer.sh --bootstrap-server t2.demo.com:9092 --topic test_hello --security-protocol PLAINTEXTSASL

生产者kafka-console-producer.sh

--broker-list storm2.starsriver.cn:9092

--topic test_hello

--property key.separator=' '

--security-protocol PLAINTEXTSASL

启动消费者[root@t1 bin]# kafka-console-consumer.sh

--bootstrap-server t2.demo.com:9092

--topic test_hello

--security-protocol PLAINTEXTSASL

hi I'm lake

启动生产品[root@t1 bin]# kafka-console-producer.sh

--broker-list t2.demo.com:9092

--topic test_hello

--property key.separator=' '

--security-protocol PLAINTEXTSASL

>hi I'm lake

>

Java API 方式

导入依赖包compile group: 'org.apache.kafka', name: 'kafka_2.12', version: '1.0.1'compile group: 'org.apache.kafka', name: 'kafka-clients', version: '1.0.1'

kafka_jass.conf配置文件KafkaClient {

com.sun.security.auth.module.Krb5LoginModule required

doNotPrompt=true

useTicketCache=true

principal="admin/admin@demo.com"

useKeyTab=true

serviceName="kafka"

keyTab="/etc/security/keytabs/admin.keytab"

client=true;

};

生产者@Testpublic void testProducer(){

System.setProperty("java.security.auth.login.config", "/path/kafka_jass.conf");

System.setProperty("java.security.krb5.conf","/etc/krb5.conf");

System.setProperty("java.security.krb5.debug","true");

Properties props = new Properties();

props.put("metadata.broker.list", "t2.demo.com,t3.demo.com,t4.demo.com");

props.put("bootstrap.servers", "t2.demo.com:9092,t3.demo.com:9092,t4.demo.com:9092");

props.put("key.serializer",StringSerializer.class.getName());

props.put("value.serializer", StringSerializer.class.getName());

props.put("request.required.acks", "1");

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

KafkaProducer producer = new KafkaProducer(props);

producer.send(new ProducerRecord("test_hello","hi","lake"));

producer.close();

}

消费者@Testpublic void testConsumer(){

System.setProperty("java.security.krb5.conf","/etc/krb5.conf");

System.setProperty("java.security.auth.login.config","/path/kafka_jass.conf");

Properties props = new Properties();

props.put("group.id", "hi");

props.put("bootstrap.servers", "t2.demo.com:9092,t3.demo.com:9092,t4.demo.com:9092");

props.put("key.deserializer", StringDeserializer.class.getName());

props.put("value.deserializer", StringDeserializer.class.getName());

props.put("request.required.acks", "1");

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

props.put("security.inter.broker.protocol", "SASL_PLAINTEXT");

KafkaConsumer consumer = new KafkaConsumer(props);

consumer.subscribe(Arrays.asList("test_hello"));    for(;;){

ConsumerRecords list = consumer.poll(100);        for(ConsumerRecord record : list){

System.out.println(record.key()+":"+record.value());

}

}

}

作者:dounine

链接:https://www.jianshu.com/p/0e8c5108452e

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值