🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 🌕

Kafka的应用场景

1 消息队列

比起大多数的消息系统来说,Kafka有更好的吞吐量,内置的分区,冗余及容错性,这让Kafka成为了一个很好的大规模消息处理应用的解决方案。消息系统 一般吞吐量相对较低,但是需要更小的端到端延时,并尝尝依赖于Kafka提供的强大的持久性保障。在这个领域,Kafka足以媲美传统消息系统,如ActiveMR或RabbitMQ。

在IDEA的maven项目中编写Topology出错:
NoClassFound找不到主类:解决–
在pom.xml中,找到中的storm,添加<>compi<>

1
2
3
4
5
6
7
8
kafka中的topic不新建也可以使用
如果不执行 ./kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 1 --topic test
直接执行下述两条命令:
kafka生产者客户端命令
./kafka-console-producer.sh --broker-list hadoop01:9092 --topic test
kafka消费者客户端命令
./kafka-console-consumer.sh -zookeeper hadoop01:2181 --from-beginning --topic test
也可以起到新建topic的目的

原理

如何仔细阅读过关于Flume、Kafka、Storm的介绍,就会知道,在他们各自之间对外交互发送消息的原理。
在后面的例子中,主要对Flume的sink进行重构,调用kafka的消费生产者(producer)发送消息;在Storm的spout中继承IRichSpout接口,调用kafka的消息消费者(Consumer)来接收消息,然后经过几个自定义的Bolt,将自定义的内容进行输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
[hadoop@hadoop01 bin]$ kafka-topics.sh --create --zookeeper hadoop01,hadoop02,hadoop03 --replication-factor 1 --partitions 3 --topic hadoop01
Created topic "hadoop01".
[hadoop@hadoop01 bin]$ kafka-topics.sh --create --zookeeper hadoop01,hadoop02,hadoop03 --replication-factor 3 --partitions 1 --topic hadoop02
Created topic "hadoop02".
[hadoop@hadoop01 bin]$ kafka-topics.sh --list --zookeeper localhost:2181
hadoop01
hadoop02
[hadoop@hadoop01 bin]$ kafka-topics.sh --describe --zookeeper localhost:2181 --topic hadoop01
Topic:hadoop01 PartitionCount:3 ReplicationFactor:1 Configs:
Topic: hadoop01 Partition: 0 Leader: 3 Replicas: 3 Isr: 3
Topic: hadoop01 Partition: 1 Leader: 1 Replicas: 1 Isr: 1
Topic: hadoop01 Partition: 2 Leader: 2 Replicas: 2 Isr: 2
----------------------------------

kafka常用命令
以下是kafka常用命令行总结:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
1、kafka服务启动
./kafka-server-start.sh -daemon ../config/server.properties

<!-- more -->

2、创建topic
./kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 1 --topic test

2.1、为topic增加副本
./kafka-reassign-partitions.sh -zookeeper hadoop01:2181 -reassignment-json-file json/partitions-to-move.json -execute

2.2、为topic增加partition
./bin/kafka-topics.sh –zookeeper hadoop01:2181 –alter –partitions 20 –topic test

3、查看有哪些topic:
./kafka-topics.sh --list --zookeeper hadoop01:2181

4、查看topic的详细信息
./kafka-topics.sh -zookeeper hadoop01:2181 -describe -topic test

5、kafka生产者客户端命令
./kafka-console-producer.sh --broker-list hadoop01:9092 --topic test

6、kafka消费者客户端命令
./kafka-console-consumer.sh -zookeeper hadoop01:2181 --from-beginning --topic test

[成功]

7、下线broker
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper hadoop01:2181 --broker #brokerId# --num.retries 3 --retry.interval.ms 60
shutdown broker

8、删除topic
./kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic test --zookeeper hadoop01:2181
./kafka-topics.sh --zookeeper hadoop01:2181 --delete --topic test
实际不会删除,只会显示marked for deletion

9、查看consumer组内消费的offset
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper hadoop01:2181 --group test --topic test
./kafka-consumer-offset-checker.sh --zookeeper hadoop01:2181 --group group1 --topic group1

kafka的使用

Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(Activity Stream) 和运营数据处理 管道(Pipeline)的基础活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(PageView)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。




全站共计 279.4k 字,自豪地使用 Volantis 主题

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议