Ambari 上使用 Kakfa
以下內容是針對在
Ambari
上啟用了Kerberos
認證的情況下處理的。
-
首先開啟
ranger
許可權管理image.png
-
配置
admin
使用者許可權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<String,String>("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<String,String> list = consumer.poll(100); for(ConsumerRecord<String,String> record : list){ System.out.println(record.key()+":"+record.value()); } } }
作者:dounine
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2144/viewspace-2815144/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apache Kakfa複製機制Apache
- Ambari非root使用者安裝步驟
- Ambari叢集搭建
- ambari2.8+ambari-metrics3.0+bigtop3.2編譯、打包、安裝S3編譯
- Linux使用Ambari啟動服務啟動失敗Linux
- Kakfa -- 消費者啟動流程
- Ambari環境準備
- Ambari啟用Kerberos認證ROS
- HortonWorks Ambari安裝部署實踐
- 大資料基礎-kakfa的安裝教程大資料
- Keepalived 實現 Ambari-Server 高可用Server
- Ambari HDP叢集搭建全攻略
- ELK學習筆記之基於kakfa (confluent)搭建ELK筆記
- ambari+ bigtop 編譯、打包、部署步驟總覽編譯
- Centos下Ambari2.7.5的編譯和安裝CentOS編譯
- 對於ambari-collector 部分原始碼流程的簡單理解原始碼
- vector 使用 上
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 最新版大資料平臺安裝部署指南,HDP-2.6.5.0,ambari-2.6.2.0大資料
- golang版supervisor 已經線上上使用Golang
- 在 Windows 上使用 FFmpegWindows
- 在Linux上使用CANLinux
- Mac上Docker的使用MacDocker
- 在 Linux 上使用 MultitailLinuxAI
- 使用指令上傳gitGit
- Windows上TDengine初次使用Windows
- 使用Linux 上的 ChromebookvLinuxChrome
- 使用Linux 上的 ChromebookLinuxChrome
- 在 Linux 上使用 tarballLinux
- 在AndroidP上使用HttpAndroidHTTP
- 在FreeBSD上使用DockerDocker
- 在 Mac 上使用 JavaMacJava
- 在 Windows 上使用 scp 命令Windows
- 如何在Mac上使用DockerMacDocker
- 如何在 Linux 上使用 pkgsrcLinux
- Linux上使用Ksnip截圖Linux
- windows上使用roadrunner-laravelWindowsLaravel
- 使用DevOps強化敏捷(上)dev敏捷