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)接口无愧于劳模接口的称 ...
随机推荐
- wake on lan sender 2.0.8
局域网 远程关机
- iptables(一)基础概念、filter表常用语法规则
iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火 ...
- angularjs 1.4.x 内部组件介绍
内部Services 1, $cacheFactory angular 内部缓存类,构建一个缓存对象. var cache = $cacheFactory('cacheId'); expect($ca ...
- Android studio学习笔记1
Android studio学习笔记1 20201303张奕博 2023.1.13 studio布局 1.线性布局 Android的线性布局不会换行,当组件一个挨着一个地排列到头之后,剩下的组件将不会 ...
- python中利用openpyxl、xlsxwriter库操作Excel
删除Excel指定行或列 使用openpyxl库操作Excel,可以删除指定的列 import openpyxl def excel_delete(fp): wb = openpyxl.load_wo ...
- Linux 压测及监控工具Nmon
一.带宽 1. 查看网卡的网络 ethtool:查看宽带大小,语法:ethtool 网卡名称,如:ethtool ens192: 2. 实时统计网卡宽带使用率nload A. 安装nload wget ...
- flask-基础篇02 请求与响应
一.处理请求 1.URL路径参数(动态路由) # 例如,有一个请求访问的接口地址为/users/123,其中123实际上为具体的请求参数,表明请求123号用户的信息.此时如何从url中提取出123的数 ...
- python爬虫代码中_获取状态码
'两种方式' import urllib status=urllib.urlopen("//www.jb51.net").code print status import requ ...
- Java-Java数据类型对应MySql数据类型
开发过程中常用的数据类型: Java Mysql 备注 整型 java.lang.Integer tinyint(m) 1个字节 范围(-128~127) java.lang.Integer ...
- 使用easypoi 最原始的代码进行导出Excel
首先,产品有需求,我们苦逼的程序员就得把需求实现.那么今天咱就把产品提的导出Excel的需求给他搞定.他的需求是这样的,很简单的Excel导出.样式如图所示:. 其实我们项目中的ExcelUtils工 ...