Apache Kafka(三)

   我们继续之前的所述,继续kafka的学习。

第八部(使用kafka流来处理数据):

kafka stream是kafka的一个客户端包,这个包用来实时处理和分析保存在kafka brokers中的数据。以下这个简短的例子将会讲解如何在使用这个包运行实时处理的应用。下面是WordCountDemo的核心代码:

实现了wordcount算法,也就是统计从输入源读取的内容中单词出现的次数。但是并不像之前所困看到的那些根据有限的数据进行wordcount的例子,这个wordcountdemo表现的可能有些略微的不同,因为他是在无界限的数据上进行操作的(说白了,数据一直在变动,也就是实时呗,不是离线),也就是无界限的数据流。与有界限的转化类似,他是一个静态的算法用来追踪和和更新词的数量。然而,他被假设潜在的去处理没有界限的输入数据,所以他会定期的输入它的状态和结果在他继续处理更多数据的时候,这是因为他并不知道什么时候才会处理完所有的数据。

我们现在准备发布到kafka topic中的数据,这随后将会被kafka streams应用进行处理。

> echo -e "all streams lead to kafka\nhello kafka streams\njoin kafka summit" > file-
input.txt
    接下来我们使用控制台生产者发送输入数据到名称为streams-file-input的topic中(实际上,流数据将会持续
的流入Kafka):

    现在我们能运行WordCount模型应用来处理输入的数据:
> bin/kafka-run-class.sh org.apache.kafka.streams.examples.wordcount.WordCountDemo
    除了日志条目被持续的写回到另一个topic名字为:streams-wordcount-output中,kafka中不会有其他的标准
出,这个例子将会运行几秒钟,然后,并不像传统传统流处理那样,自动关闭。
    我们现在能够通过查看他的输出topic来查看WoudCountDemo的输出结果。
     下列输出数据被打印在控制台:

      这里,第一列是kafka的信息Key值,第二列是信息的Value值,他们都是java.lang.String类型的。注意,
出实际上是持续的更新流,每一个数据记录都是每个单独词语的统计更新,对于相同Key的多记录,后面的每条记录都是前
面记录的跟新版。
      现在你可以写更多的输入消息到streams-file-input 的topic并观察增加到streams-wordcount-output 
的topic中的信息。
      你可以通过命令ctrl-c来停止控制台。
【原文下面是关于更新版本的介绍,我这里不做介绍,直接进入到API的介绍】
      Apache Kafka包含新的Java 客户端。这意味着代替旧版本的scala客户端,但是为了兼容性,他们会共存很长
长的时间。这些客户端的包将会与最小依赖包分开成为单独的包,然而较为旧的scala包将会仍然保留。
      我们建议所有的开发者使用最新的java生产者,这个版本的客户端经过产品检测,并且比原有的scala客户端更
快,功能更多。你可以在你的maven项目中加入如下的客户端依赖:

      0.9.0版本我们新加入了Java的消费者版本去替换已经存在的高层次的基于zookeeper的消费者,和低层次的消
者api。这个版本被认为beta quality。为了确保用户顺利升级,我们仍然允许0.8版本的消费者客户端能够在0.9版
本中正常工作。
      这个新的统一的消费者API消除了在0.8版本中高层次和低层次中消费者API中的不同,你可以在你的maven项目
中添加如下的依赖:

      0.10.0版本我们加入了新的客户端包名字叫做Kafka streams,用来让用户流式处理储存在Kafka topic中的
数据。Kafka Streams被认为 alpha quality,他的公共API在未来可能会有所改动。你可以在你的maven项目中加入
如下依赖:

      Kafka使用Key-Value对并且以property 文件类型的形式作为配置,这些值可以来自一个文件,或者程序自动
      由于配置页面过大,这里不做介绍,详细可上官网查看。
      topic级别的配置:关于topic的配置,既有全局默认的也有手动覆盖的。如果不手动覆盖那么就会默认使用全局
的默认配置。手动覆盖的可以在创建topic的时候直接加入几个--config参数完成。以下的例子创建了一个名字叫做:
my-topic的topic,同时自定义了最大消息大小和刷新频率:

      覆盖可以被更改或者稍后被设置通过alter topic命令。这个例子更新了my-topic的最大消息大小:

      想要删除你可以使用:
     好了,官网下面的内容我个人感觉没有必要讲解,因为要么就是各种配置长但却无趣。最下面的个人感觉讲的设计
什么的目前应该还达不到那种高度,那目前的任务就是根据目前所掌握的进行练习。
     感谢开源。
      
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值