一台Linux主机搭建kafka集群
来源:互联网 发布:重庆大数据行动计划 编辑:程序博客网 时间:2024/06/11 23:17
一、搭建Zookeeper集群
二、kafka broker集群搭建
kafka 下载、解压
wget http://apache.opencas.org/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgztar -xzf kafka_2.11-0.9.0.0.tgz
kafka broker配置文件修改
修改kafka根目录下的config/server.propertiesbroker.id=0 #整个集群内唯一id号,整数,一般从0开始listeners=PLAINTEXT://192.168.6.56:9092 #协议、当前broker机器ip、端口,此值可以配置多个,应该跟SSL等有关系,更多用法尚未弄懂,这里修改为ip和端口。port=9092 #broker端口host.name=192.168.6.56 #broker 机器iplog.dirs=/zyxx_data/kafka-logs/kafka00 #kafka存储数据的目录zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183 #zookeeper 集群列表
kafka broker多节点配置
kafka多节点配置,可以像zookeeper一样把软件目录copy多份,修改各自的配置文件。这里介绍另外一种方式:同一个软件目录程序,但使用不同的配置文件启动
使用不同的配置文件启动多个broker节点,这种方式只适合一台机器下的伪集群搭建,在多台机器的真正集群就没有意义了
把kafka根目录下的config/server.properties copy两份,名称分别修改为:server-1.properties 、server-2.properties。各自修改他们的配置如下:
config/server-1.properties
broker.id=1 listeners=PLAINTEXT://192.168.6.56:9093port=9093 host.name=192.168.6.56log.dirs=/zyxx_data/kafka-logs/kafka01 zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183
config/server-2.properties
broker.id=2 listeners=PLAINTEXT://192.168.6.56:9094port=9094 host.name=192.168.6.56log.dirs=/zyxx_data/kafka-logs/kafka02 zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183
集群启动
zookeeper集群启动
进入到/var/zookeeper/目录,执行
zookeeper00/bin/zkServer.sh startzookeeper01/bin/zkServer.sh startzookeeper02/bin/zkServer.sh start
我们可以通过以下命令查看zookeeper是否已启动
ps -ef | grep zoo.cfg
kafka 集群启动
进入到kafka目录,执行
bin/kafka-server-start.sh -daemon config/server.propertiesbin/kafka-server-start.sh -daemon config/server-1.propertiesbin/kafka-server-start.sh -daemon config/server-2.properties
"-daemon" 参数代表以守护进程的方式启动kafka server。
官网及网上大多给的启动命令是没有"-daemon"参数,如:“bin/kafka-server-start.sh config/server.properties &”,但是这种方式启动后,如果用户退出的ssh连接,进程就有可能结束,具体不清楚为什么。我们可以通过以下命令查看kafka server是否已启动
ps -ef | grep config/server
测试
为了简单起见,这里通过命令行的方式启动生产者和消费者进行测试。
创建主题
进入到kafka目录,创建“test5”topic主题:分区为3、备份为3的
bin/kafka-topics.sh --create --zookeeper 192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183 --replication-factor 3 --partitions 3 --topic test5
--zookeeper : zookeeper集群列表,用英文逗号分隔。可以不用指定zookeeper整个集群内的节点列表,只指定某个或某几个zookeeper节点列表也是你可以的
replication-factor : 复制数目,提供failover机制;1代表只在一个broker上有数据记录,一般值都大于1,代表一份数据会自动同步到其他的多个broker,防止某个broker宕机后数据丢失。
partitions : 一个topic可以被切分成多个partitions,一个消费者可以消费多个partitions,但一个partitions只能被一个消费者消费,所以增加partitions可以增加消费者的吞吐量。kafka只保证一个partitions内的消息是有序的,多个一个partitions之间的数据是无序的。查看"test5"主题详情
bin/kafka-topics.sh --describe --zookeeper 192.168.6.56:2181 --topic test5
启动生产者、消费者
启动生产者
bin/kafka-console-producer.sh --broker-list 192.168.6.56:9092 --topic test5
--broker-list : 值可以为broker集群中的一个或多个节点
启动消费者(在新的ssh连接窗口)
bin/kafka-console-consumer.sh --zookeeper 192.168.6.56:2181 --topic test5 --from-beginning
--zookeeper : 值可以为zookeeper集群中的一个或多个节点
我们可以发现,在生产者下输入一个消息,回车后可以在消费者下输出,说明我们集群搭建的没问题
模拟kafka broker集群某个节点宕机
我们直接通过kill 进程来模拟
再观察 生产者和消费者
我们可以发现,消费者出现了警告信息,但是依旧可以消费数据。
模拟zookeeper集群某个节点宕机
我们直接通过kill 进程来模拟
再观察 生产者和消费者
我们可以发现,消费者依旧可以消费数据。
这就说明我们整个集群环境的搭建已经成功。注意一点,你启动消费者时在命令中只指定了一个zookeeper节点,且模拟zookeeper某个节点宕机时,你kill掉的正好又是这个节点。这种情况下你的消费者会不停的报警告信息,但是不影响消费信息。
- 一台Linux主机搭建kafka集群
- linux 搭建 kafka集群
- 多台主机搭建redis集群
- 一.kafka集群环境搭建
- kafka-linux集群搭建小结
- 【Kafka】Kafka集群搭建
- Linux平台上搭建apache+tomcat负载均衡集群[一台服务器多tomcat集群模式]
- 在linux同一台主机下面搭建两个mysql 实例并实现主从复制 (一)
- 一台机器上安装zookeeper+kafka集群
- 在一台主机上模拟tomcat集群
- 译 | 像使用一台主机一样管理集群
- 【Linux】ubuntu下kafka集群环境搭建
- Linux docker环境kafka集群搭建
- 【Linux】ubuntu下kafka集群环境搭建,kafka命令
- 使用nmon实现一台Linux主机监控多台主机之——Linux多台主机建立信任
- BJ:一台Windows主机搭建mysql主从配置
- 两台Linux主机通信(服务器客户端搭建)
- Linux:从一台主机向多台主机发送命令的SHELL
- 【Redis】redis的安装
- 20170722
- python中检测某个变量是否有定义
- Java并发阻塞队列BlockingQueue概览
- 架构师之路(二十)项目的架构流程演化
- 一台Linux主机搭建kafka集群
- 微信小程序页面跳转
- log4j配置mybatis打印sql
- excel逐列读取excel所有数据
- uva 540 Team Queue
- sizeof(数组名)和sizeof(指针)
- POI获取单元格背景颜色
- Java-在一组有序数组中进行查找指定数及对应下标,再插入指定数,最后删除指定数。
- 即时函数(Immediate Functions)