Kafka 详解 + 集群部署
来源:互联网 发布:怎么把mac照片导入u盘 编辑:程序博客网 时间:2024/05/31 18:33
什么是kafka ?
apche kafka 是 一个分布式流数据处理平台,kafka设计的初衷就是处理日志的,可以看做一个日志系统,针对性很强,所以它并没有具备一个成熟MQ应该具备的特性。
为什么要使用kafka?
1) 分布式2)恐怖的吞吐能力3)速度快4)同时支持实时和离线两种解决方案5)默认提供了消息的持久化6)Open Source
说明 : 3台廉价PC组成的kafka 集群每秒可以处理 : 200万条消息(写),每秒10K 。
日志的重要性
银行流水日志,学习笔记,行为分析,快速定位鼓掌等等。
安装和配置 :
//下载[root@VM_12_177_centos ]# wget http://mirror.bit.edu.cn/apache/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz//解压缩[root@VM_12_177_centos installfile]# tar -zxvf kafka_2.11-0.11.0.0.tgz -C ../kafka/kafkaServer///复制文件[root@VM_12_177_centos config]# cp server.properties server01.properties [root@VM_12_177_centos config]# cp server.properties server02.properties [root@VM_12_177_centos config]# cp server.properties server03.properties //修改配置文件[root@VM_12_177_centos config]# vim server02.properties [root@VM_12_177_centos config]# vim server01.properties [root@VM_12_177_centos config]# vim server03.propertiesbroker.id=0 //保证不一致,类似zookeeper中的myidlog.dirs=/agui/kafka/data0 // 该路劲存储三台kafka持久化数据的文件夹,我建立了data0,1,2port=9092 // 端口,三个kafka 分别是9092 , 9093,9094 。不一致即可。host.name=127.0.0.1 // 主机名称或者ip//启动kafka [root@VM_12_177_centos kafka_2.11-0.11.0.0]# cd bin[root@VM_12_177_centos bin]# ll-rwxr-xr-x 1 root root 1376 Jun 23 06:06 kafka-server-start.sh-rwxr-xr-x 1 root root 945 Jun 23 06:06 kafka-console-consumer.sh-rwxr-xr-x 1 root root 944 Jun 23 06:06 kafka-console-producer.sh-rwxr-xr-x 1 root root 867 Jun 23 06:06 zookeeper-security-migration.sh-rwxr-xr-x 1 root root 1393 Jun 23 06:06 zookeeper-server-start.sh-rwxr-xr-x 1 root root 978 Jun 23 06:06 zookeeper-server-stop.sh-rwxr-xr-x 1 root root 968 Jun 23 06:06 zookeeper-shell.sh// 不建议用 自带的 zookeeper 。 //启动kafka 集群 , 顺序: 先启动 zookeeper集群,要么会报错。//kafka启动会占用命令窗口,所以我们需要后台启动。 [root@VM_12_177_centos bin]# jps25697 QuorumPeerMain25618 QuorumPeerMain25652 QuorumPeerMain26276 Jps[root@VM_12_177_centos bin]# nohup ./kafka-server-start.sh ../config/server01.properties 2>&1 > /dev/null &[1] 26423[root@VM_12_177_centos bin]# nohup: ignoring input and redirecting stderr to stdoutjps25697 QuorumPeerMain25618 QuorumPeerMain25652 QuorumPeerMain26710 Jps26423 Kafka//端口查看进程[root@VM_12_177_centos bin]# netstat -tunlp|grep 9092tcp 0 0 127.0.0.1:9092 0.0.0.0:* LISTEN 26423/java //顺次启动其他的kafka,重复上述命令,改变server-x.properties 。
kafka成员
topic , produce , consume
kafka-topics.sh
都与主题(topic)有关,命令方式对topic crud( 创建,读取,更新,删除)
/**创建topic**/[root@VM_12_177_centos bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 4 --partitions 4 --topic agui-topic01Error while executing topic command : replication factor: 4 larger than available brokers: 2[2017-09-27 13:07:46,176] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: replication factor: 4 larger than available brokers: 2 (kafka.admin.TopicCommand$) //上面错误原因是: --replication-factor 4 的个数应该 <= kafka 个数[root@VM_12_177_centos bin]# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 4 --topic agui-topic01Created topic "agui-topic01".[root@VM_12_177_centos bin]# //list 查看 agui-topic01[root@VM_12_177_centos bin]# ./kafka-topics.sh --list --zookeeper localhost:2181agui-topic01// 连接 zk 客户端查看 agui-topic01[zk: localhost:2181(CONNECTED) 2] ls /brokers/topics[agui-topic01][zk: localhost:2181(CONNECTED) 3]
topic介绍 :
每条发布到kafka集群的消息都有一个类别,这个类别被称为topic 。
producer介绍:
负责发布消息到 kafka broker
consumer 介绍:
消息消费者,向kafka broker 读取消息的客户端。
broker 介绍 :
kafka 集群包含一个或多个服务器,这种服务器被称为broker 。
kafka集群消费演练
创建两个linux连接
//1赵建 去执行 生产命令[root@VM_12_177_centos bin]# ./kafka-console-producer.sh --broker-list localhost:9093 --topic agui-topic01>hello>wo shia^H agui>zhangsan>lisi>wo shi agui>//2赵建 去执行 消费命令[root@VM_12_177_centos bin]# ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic agui-topic01Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].zhangsanlisiwo shi agui//说明:我们在1赵建中 继续添加agui-topic01 分片 内容,2赵建消费命令会自动将 新添加的分片打印出来。
java 代码演示 producer :
jar :
//说明27行 key 就是我们上面命令创建的 agui-topic01 26行 msg 就是我们在agui-topic01下创建的分片。//效果跟命令一样。
最后:
kafka 知道是什么了,也知道怎么配置了,也演练了基本的命令和java代码的使用,那么kafka 在分布式系统中到底如何使用?
logstash –> kafka –> storm –>hbase 。 这样一个分布式结构才是处理完整的kafka的计算结构。
阅读全文
0 0
- Kafka 详解 + 集群部署
- Kafka集群模式部署
- Kafka linux集群部署
- Kafka集群部署
- kafka集群部署
- zookeeper+Kafka集群部署
- Kafka集群部署
- kafka集群部署
- Kafka 集群部署
- kafka集群部署
- zookeeper+kafka集群部署
- kafka 0.10 集群部署
- Kafka集群搭建02-Kafka 集群部署
- kafka集群管理工具kafka-manager部署安装
- kafka集群配置详解
- 详解kafka集群搭建
- Kafka集群部署及测试
- Kafka分布式集群部署手册
- unity_NGUI系统学习(二)_Panel组件
- 硬币找零
- Java集合
- 主成分分析详解(包含最大方差理论、协方差、几何意义) Principal components analysis
- TCP和UDP的"保护消息边界" (经典)
- Kafka 详解 + 集群部署
- 欢迎使用CSDN-markdown编辑器
- 软件测试概念
- 由VMware卸载引出CCleaner
- Android中单例模式
- Nginx配置实例
- 粘性定位------------------position:sticky
- C语言-指针
- Vue.js自定义指令的用法与实例