kafka 0.8版本使用手册
实时计算相关技术
Strom / JStrom Spark Streming Flink
实时性高 有延迟 实时性高
吞吐量较低 吞吐量高 吞吐量高
只能实时计算 离线+实时 离线+实时
算子比较少 算子丰富 算子丰富
没有 机器学习 没有
没有 图计算 没有
使用比较少 非常火 一般
一个完整的生态是非常重要的,spark生态特别完善
---------------------------------------------------------
Kafka的一些概念
Broker : 安装Kafka服务的那台集群就是一个broker(broker的id要全局唯一)
Producer :消息的生产者,负责将数据写入到broker中(push)
Consumer:消息的消费者,负责从kafka中读取数据(pull),老版本的消费者需要依赖zk,新版本的不需要
Topic: 主题,相当于是数据的一个分类,不同topic存放不同的数据
Consumer Group: 消费者组,一个topic可以有多个消费者同时消费,多个消费者如果在一个消费者组中,那么他们不能重复消费数据
Spark Streaming 2.2.0兼容kafka 0.8.2.1以上的版本,主要支持0.8和0.10这两个版本
---------------------------------------------------------
kafka集群安装
1.下载Kafka安装包
2.上传安装包
3.解压
4.修改配置文件 config/server.properties
broker.id=0
host.name=node-4
log.dirs=/data/kafka
zookeeper.connect=node-1:2181,node-2:2181,node-3:2181
5.将配置好的kafka拷贝到其他机器上
6.修改broker.id和host.name
7.启动kafka
把master,slave1,slave2上的kafka按照这个命令一一启动,
bigdata/kafka_2.11-0.8.2.2/bin/kafka-server-start.sh -daemon /bigdata/kafka_2.11-0.8.2.2/config/server.properties
#查看topic信息
bigdata/kafka_2.11-0.8.2.2/bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181
#创建topic
bigdata/kafka_2.11-0.8.2.2/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181 --replication-factor 3 --partitions 3 --topic clock-msg-entry
#往Kafka的topic中写入数据(命令行的生成者)
bigdata/kafka_2.11-0.8.2.2/bin/kafka-console-producer.sh --broker-list master:2181,slave1:2181,slave2:2181 --topic clock-msg-entry
#启动消费者
bigdata/kafka_2.11-0.8.2.2/bin/kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181 --topic clock-msg-entry --from-beginning
//停止kafka
bin/kafka-server-stop.sh
kafka 0.10版本使用手册
kafka集群部署
#修改kafka配置文件
vi server.properties
broker.id=1
delete.topic.enable=true
listeners=PLAINTEXT://node-1:9092
log.dirs=/data/kafka
zookeeper.connect=node-1.xiaoniu.com:2181,node-2.xiaoniu.com:2181,node-3.xiaoniu.com:2181
配置完需使用拷贝到其他主机
启动kafka
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh -daemon /bigdata/kafka_2.11-0.10.2.1/config/server.properties
bin/kafka-server-start.sh -daemon /config/server.properties
停止kafka
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-server-stop.sh
创建topic
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --create --zookeeper node-1.xiaoniu.com:2181,node-2.xiaoniu.com:2181,node-3.xiaoniu.com:2181 --replication-factor 3 --partitions 3 --topic my-topic
bigdata/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181 --replication-factor 2 --partitions 2 --topic mytopic
列出所有topic
bigdata/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181
查看某个topic信息
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-topics.sh --describe --zookeeper node-1.xiaoniu.com:2181,node-2.xiaoniu.com:2181,node-3.xiaoniu.com:2181 --topic my-topic
启动一个命令行的生产者
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-console-producer.sh --broker-list node-1.xiaoniu.com:9092,node-1.xiaoniu.xom:9092,node-3.xiaoniu.com:9092 --topic xiaoniu
bigdata/kafka_2.11-0.10.2.1/bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic clock-msg-entry
bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic clock-msg-entry
启动一个命令行的消费者
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-console-consumer.sh --zookeeper node-1.xiaoniu.com:2181,node-2.xiaoniu.com:2181,node-3.xiaoniu.com:2181 --topic my-topic --from-beginning
# 消费者连接到borker的地址
/bigdata/kafka_2.11-0.10.2.1/bin/kafka-console-consumer.sh --bootstrap-server node-1.xiaoniu.com:9092,node-2.xiaoniu.com:9092,node-3.xiaoniu.com:9092 --topic xiaoniu --from-beginning
kafka 启动目录 cd /data/kafka_2.10-0.10.2.2
Kafka Connect:
https://kafka.apache.org/documentation/#connect
http://docs.confluent.io/2.0.0/connect/connect-jdbc/docs/index.html
Kafka Stream:
https://kafka.apache.org/documentation/streams
https://spark.apache.org/docs/1.6.1/streaming-kafka-integration.html
kafka monitor:
https://kafka.apache.org/documentation/#monitoring
https://github.com/quantifind/KafkaOffsetMonitor
https://github.com/yahoo/kafka-manager
kafka生态圈:
https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem