Scala操作Kakfa API
如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704
由于我使用的是kafka_2.10-0.10.0.1,需要下载对应版本的kafka-clients-0.10.1.1.jar包
生产数据KafkaProducerEx:
1 package test.KafkaTest
2
3 import java.util.Properties
4 import org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}
5 import org.apache.kafka.clients.consumer
6 import org.apache.kafka.clients.consumer.ConsumerConfig
7 import org.apache.kafka.common.serialization
8
13 object KafkaProducerEx {
14 def main(args:Array[String]): Unit= {
15 val topic = "test"
16 val brokers = "localhost:9092" //Zookeeper地址,两个地址以逗号(,)分割
17 val props = new Properties()
18 props.put("bootstrap.servers", brokers)
19 props.put("acks","all")
20 props.put("retries","0")
21 props.put("batch.size","16384")
22 props.put("linger.ms","1")
23 props.put(ConsumerConfig.GROUP_ID_CONFIG,"test")
24 props.put("buffer.memory","33554432")
25 props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")
26 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer")
27
28 val producer = new KafkaProducer[String, String](props)
29 val t = System.currentTimeMillis()
30 val msg = "producer message::::::"
31 var i=0
32 for(i<-Range(1,1000))
33 {
34 println(msg+i.toString())
35 val record = new ProducerRecord[String, String](topic, "kafka_key", msg+i.toString())
36 producer.send(record)
37 }
38 producer.close()
39 }
40 }
消费数据KafkaConsumerEx:
1 package test.KafkaTest
2 import java.util.{Collections, Properties}
3
4 import scala.collection.JavaConversions._
5 import org.apache.kafka.clients.consumer.{ConsumerConfig, ConsumerRecord, ConsumerRecords, KafkaConsumer}
6 import org.apache.kafka.common.serialization
7
8 object KafkaConsumerEx {
9
10 def main(args:Array[String]):Unit={
11 val topic = "test"
12 val brokers = "localhost:9092"
13 val props = new Properties()
14 props.put("bootstrap.servers", brokers)
15 props.put("enable.auto.commit","true")
16 props.put("auto.commit.interval.ms","10000")
17 props.put(ConsumerConfig.GROUP_ID_CONFIG,"test")
18 props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
19 props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
20 val consumer = new KafkaConsumer[String, String](props)
21 consumer.subscribe(Collections.singleton(topic))
22 while (true)
23 {
24 val records:ConsumerRecords[String,String] = consumer.poll(100)
25 for ( record <- records){
26 println(record.value())
27 }
28 }
29 consumer.close()
30 }
31 }
Scala操作Kakfa API的更多相关文章
- geotrellis使用(五)使用scala操作Accumulo
要想搞明白Geotrellis的数据处理情况,首先要弄清楚数据的存放,Geotrellis将数据存放在Accumulo中. Accumulo是一个分布式的Key Value型NOSQL数据库,官网为( ...
- Scala操作Hbase空指针异常java.lang.NullPointerException处理
Hbase版本:Hortonworks Hbase 1.1.2 问题描述:使用Scala操作Hbase时,发生空指针异常(java.lang.RuntimeException: java.lang.N ...
- Scala操作MongoDB
Scala操作MongoDB // Maven <dependencies> <dependency> <groupId>org.mongodb</group ...
- Scala操作外部数据
Scala操作外部数据: 1.操作文件 2.操作XML 3.操作MySQL 读取文件: object FileApp { def main(args: Array[String]): Unit = { ...
- 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:
使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...
- 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解
本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...
- 『与善仁』Appium基础 — 26、常用手机操作的API说明
目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...
- win32com操作word API精讲 第六集 Range(四)对齐和缩进
本课程<win32com操作word API精讲&项目实战>同步在B站.今日头条.视频号及本公众号发布.其中本公众号以发布文字教程为主. 今天是大年初二,一灯在此祝愿各位朋友兔年吉 ...
- win32com操作word API精讲 第七集 Range(五)字体格式精讲
本课程<win32com操作word API精讲&项目实战>视频平台以视频为主,本平台以文字为主,公众号ID:一灯编程 本节课主要讲解使用Range操作Font接口中的字体.字号. ...
- win32com操作word API精讲 第十集 Paragraphs & Paragraph接口 (一)
本课程<win32com操作word API精讲&项目实战>以视频为主,文字为辅,公众号ID:一灯编程 在word编程中,Range和Paragraph(s)接口无愧于劳模接口的称 ...
随机推荐
- Beginning IOS 7 Development Exploring the IOS SDK - Navigation Controllers and Table Views
Note You may notice that the familyNames property is declared using the copy keyword instead of stro ...
- servlet和spring框架的关系
1.Servlet是什么? servlet就是一个Java接口,是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能. 由其他内部厂商如tomcat,JBoss内部实现web的功能. ...
- db2入门必看命令清单--日常运维必需
关注 推荐 嘉兴 视频 财经 科技 热点 国际 更多 搜索 34 消息 发布 5 2 收藏 分享 db2入门必看命令清单--日常运维必需 https://www.toutiao.c ...
- struts2 显示表格
<%@ taglib uri="/struts-tags" prefix="s"%> <h3>All Records:</h3&g ...
- 在datagridview中首列添加复选框
//为dgv增加复选框列 DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn(); //列显示名称 checkbo ...
- Java流程控制之for循环
for循环[重点] 虽然所有的循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是 ...
- Mybatis实现树状结构查询
1.实体类 @Data public class CourseChapterVO implements Serializable { private static final long serialV ...
- python基于百度unit实现语音识别与语音交互
一.百度Unit新建机器人 网址:https://ai.baidu.com/tech/speech/asr: 1.新建机器人并添加预置技能步骤 (1).新建机器人(添加预置技能),并填写机器人具体信息 ...
- STM32F103RCT6驱动AD7705(cubeide)
首先在cubeide上配置spi,使用spi1,由于正点开发板上的nr24l01与ad7705正好相同,因此根据引脚配置PA1为DRDY,PC4为CS片选 根据手册上所写,配置寄存器初始化 uint8 ...
- python中的字典数据读取
①字典中嵌套字典 res1={'content': {'age': '47岁', 'ageOne': 47, 'ageOneUnit': '1', 'ageTwo': '8', 'ageTwoUnit ...