如需大数据开发整套视频(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的更多相关文章

  1. geotrellis使用(五)使用scala操作Accumulo

    要想搞明白Geotrellis的数据处理情况,首先要弄清楚数据的存放,Geotrellis将数据存放在Accumulo中. Accumulo是一个分布式的Key Value型NOSQL数据库,官网为( ...

  2. Scala操作Hbase空指针异常java.lang.NullPointerException处理

    Hbase版本:Hortonworks Hbase 1.1.2 问题描述:使用Scala操作Hbase时,发生空指针异常(java.lang.RuntimeException: java.lang.N ...

  3. Scala操作MongoDB

    Scala操作MongoDB // Maven <dependencies> <dependency> <groupId>org.mongodb</group ...

  4. Scala操作外部数据

    Scala操作外部数据: 1.操作文件 2.操作XML 3.操作MySQL 读取文件: object FileApp { def main(args: Array[String]): Unit = { ...

  5. 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:

     使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...

  6. 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解

    本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...

  7. 『与善仁』Appium基础 — 26、常用手机操作的API说明

    目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...

  8. win32com操作word API精讲 第六集 Range(四)对齐和缩进

    本课程<win32com操作word API精讲&项目实战>同步在B站.今日头条.视频号及本公众号发布.其中本公众号以发布文字教程为主. 今天是大年初二,一灯在此祝愿各位朋友兔年吉 ...

  9. win32com操作word API精讲 第七集 Range(五)字体格式精讲

    本课程<win32com操作word API精讲&项目实战>视频平台以视频为主,本平台以文字为主,公众号ID:一灯编程 本节课主要讲解使用Range操作Font接口中的字体.字号. ...

  10. win32com操作word API精讲 第十集 Paragraphs & Paragraph接口 (一)

    本课程<win32com操作word API精讲&项目实战>以视频为主,文字为辅,公众号ID:一灯编程 在word编程中,Range和Paragraph(s)接口无愧于劳模接口的称 ...

随机推荐

  1. 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 ...

  2. servlet和spring框架的关系

    1.Servlet是什么? servlet就是一个Java接口,是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能. 由其他内部厂商如tomcat,JBoss内部实现web的功能. ...

  3. db2入门必看命令清单--日常运维必需

    关注 推荐 嘉兴 视频 财经 科技 热点 国际 更多   搜索 34 消息 发布     5   2   收藏 分享 db2入门必看命令清单--日常运维必需 https://www.toutiao.c ...

  4. struts2 显示表格

    <%@ taglib uri="/struts-tags" prefix="s"%> <h3>All Records:</h3&g ...

  5. 在datagridview中首列添加复选框

    //为dgv增加复选框列 DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn(); //列显示名称 checkbo ...

  6. Java流程控制之for循环

    for循环[重点] 虽然所有的循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是 ...

  7. Mybatis实现树状结构查询

    1.实体类 @Data public class CourseChapterVO implements Serializable { private static final long serialV ...

  8. python基于百度unit实现语音识别与语音交互

    一.百度Unit新建机器人 网址:https://ai.baidu.com/tech/speech/asr: 1.新建机器人并添加预置技能步骤 (1).新建机器人(添加预置技能),并填写机器人具体信息 ...

  9. STM32F103RCT6驱动AD7705(cubeide)

    首先在cubeide上配置spi,使用spi1,由于正点开发板上的nr24l01与ad7705正好相同,因此根据引脚配置PA1为DRDY,PC4为CS片选 根据手册上所写,配置寄存器初始化 uint8 ...

  10. python中的字典数据读取

    ①字典中嵌套字典 res1={'content': {'age': '47岁', 'ageOne': 47, 'ageOneUnit': '1', 'ageTwo': '8', 'ageTwoUnit ...