kafka学习笔记(1)

来源:互联网 发布:炫踪网络上市 编辑:程序博客网 时间:2024/05/02 02:08

什么是Kafka
      Kafka是一种高吞吐量的分布式订阅消息系统,它可以处理消费者规模的网站中的所有工作流数据。这种动作(网页浏览,搜索和其它用户的行动)实在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。
      注:hadoop是一个分布式系统基础架构,它实现了一个分布式文件系统,简称HDFS,可以以流的形式访问文件系统中的数据。核心设计就是HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。

Kafka适用环境

    当一个原型系统Web应用和SQL数据库开发完成,SQL数据库为 Web应用提供数据持久化以及数据查询,当用户增大时,访问量超过了SQL数据库的承受,遍会加上缓冲服务降低荷载,理解用户行为遍需要收集日志并保存到Hadoop上离线处理,同时把日志放在全文检索系统中以便快速定位问题,为了观察业务情况需要把数据汇总到数据仓库中以便提供交互式报表。系统架构会变得复杂。    Kafka可以让适合的数据以适合的形式出现在适合的地方。做法是提供消息队列,让生产者单往队列的末尾添加数据,让多个消费者从队列里面依次读取数据然后自行处理。

Kafka四个核心
1.Producer API 发布消息到1个或多个Topic
2.Consumer API订阅一个或多个topic,并处理产生的消息
3.Streams API 充当流处理器,从一个或多个topic消费输入流,并生产一个输出流到1个或者多个输出topic
4.Connect API 通过实现连接器(connector),不断地从一些源系统或应用程序中拉取数据到kafka,或从kafka提交数据到宿系统(sink system)或应用程序

Kafka安装问题
      在网上按教程安装时出现了打启动命令无反应,查找配置文件发现是config里的server.properties和zookeeper.properties是空白的,可能是之前因为什么操作的原因吧,将kafka的压缩包打开将里面对应文件的内容复制进去启动后可以运行,然后出现解析域名错误,这是因为你主机名不是默认的localhost,你需要在/etc/hosts文件里加入主机名如 :127.0.0.1 主机名,完美运行。

当前命令都是在kafka目录下启动的
Zookeeper启动
bin/zookeeper-server-start.sh config/zookeeper.properties
Kadka server启动
bin/kafka-server-start.sh config/server.properties
其中server.properties是想启动kafka server的名字
创建topic
bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic test
test为创建的topic的名字,replication-factor后是想创建的副本数
查看当前的topic
bin/kafka-topics.sh –list –zookeeper localhost:2181
查看broker在做什么事情
bin/kafka-topics.sh –describe –zookeeper localhost:2181 –topic test
开启producer的命令
bin/kafka-console-producer.sh –broker-list localhost:9092 –topic my-replicated-topic
开启consumer的命令
bin/kafka-console-consumer.sh –zookeeper localhost:2181 –from-beginning –topic my-replicated-topic

原创粉丝点击