[kafka]kafka集群实践

环境

iphostnameserver_id
192.168.1.111UAT042
192.168.1.112UAT031
192.168.1.102UAT053

配置hosts:

192.168.1.112 UAT03
192.168.1.111 UAT04
192.168.1.102 UAT05

安装jdk

# rpm -ivh jdk-8u65-linux-x64.rpm
# java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

下载软件包

# wget http://apache.fayea.com/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
# wget http://apache.fayea.com/kafka/0.10.0.1/kafka_2.11-0.10.0.1.tgz

安装kafka+zookeeper

# tar -xf zookeeper-3.4.8.tar.gz -C /usr/local/
# tar -xf kafka_2.11-0.10.0.1.tgz -C /usr/local/

三台机器都这样操作

配置zookeeper

# cd /usr/local/zookeeper/conf/
# cp zoo_sample.cfg zoo.cfg
# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
dataLogDir=/usr/local/zookeeper/logs
server.1 = 192.168.1.112:3888:4888
server.2 = 192.168.1.111:3888:4888
server.3 = 192.168.1.102:3888:4888
# mkdir /usr/local/zookeeper/{data,logs}
# echo 1 > /usr/local/zookeeper/data/myid
将整个目录拷贝到另外两台机器(注意修改myid、server_id、hostname)

配置kafka

# vim /usr/local/kafka/config/server.properties
broker.id=1
port=9092
host.name=UAT03
advertised.host.name=UAT03
num.network.threads=9
num.io.threads=16
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=16
default.replication.factor=2
num.recovery.threads.per.data.dir=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=720
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=192.168.1.112:2181,192.168.1.111:2181,192.168.1.102:2181
zookeeper.connection.timeout.ms=6000
同时将整个kafka目录拷到另外两台机器,修改broker.id、hostname、

拷贝zookeeper+kafka目录至另外机器

# scp -r zookeeper/ kafka/ 192.168.1.111:/usr/local/
# scp -r zookeeper/ kafka/ 192.168.1.102:/usr/local/
# echo 2 > /usr/local/zookeeper/data/myid
# echo 3 > /usr/local/zookeeper/data/myid
修改192.168.1.111上配置:
/usr/local/kafka/config/server.properties
broker.id=2
host.name=UAT04
advertised.host.name=UAT04
修改192.168.1.111上配置:
/usr/local/kafka/config/server.properties
broker.id=3
host.name=UAT05
advertised.host.name=UAT05

启动zookeeper+kafka集群

# /usr/local/zookeeper/bin/zkServer.sh start & 3台机器都执行
查看zookeeper集群状态:
[root@UAT-03 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@UAT-04 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@UAT-05 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
# /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties & 3台机器都执行
[2016-08-16 18:34:04,139] INFO [Kafka Server 1], started (kafka.server.KafkaServer)
[2016-08-16 18:34:36,712] INFO [Kafka Server 2], started (kafka.server.KafkaServer)
[2016-08-16 18:34:42,738] INFO [Kafka Server 3], started (kafka.server.KafkaServer)

上面的启动方式结束会话退出shell时,进程会被杀掉,依赖当前会话,使用下面方式启动

# nohup /usr/local/zookeeper/bin/zkServer.sh start &
# nohup /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties&

简单使用测试

创建topic:

# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.111:2181 --replication-factor 1 --partitions 1 --topic test &

列出topic:

# /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.1.111:2181
test

使用web监控

KafkaOffsetMonitor

# mkdir /usr/local/kafka_monitor
# cd /usr/local/kafka_monitor 将下载好的jar包上传到此处
# vim mobile_start_en.sh
#!/bin/bash
java -Xms512M -Xmx512M -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -cp KafkaOffsetMonitor-assembly-0.2.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk 192.168.1.1
12:2181,192.168.1.111:2182,192.168.1.102:2181 --port 8086 --refresh 10.seconds --retain 7.days 1>mobile-logs/stdout.log 2>mobile-logs/stderr.log &
# mkdir mobile-logs
# chmod +x mobile_start_en.sh
# ./mobile_start_en.sh
访问:http://192.168.1.112:8086/

Zookeeper for systemd service

[Unit]
Description=zookeeper.service
After=network.target
[Service]
User=zk
Type=forking
Environment=ZOO_LOG_DIR=/data/zk/zookeeper_logs
Environment=JAVA_HOME=/usr/java/jdk1.8.0_121
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart zookeeper
systemctl enable zookeeper

Kafka for systemd service

[Unit]
Description=kafka.service
After=network.target
[Service]
User=zk
Type=simple
PIDFile=/var/run/kafka.pid
Environment=KAFKA_LOG_DIR=/data/zk/kafka_logs
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
ExecReload=$ExecStop;$ExecStart
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart kafka
systemctl enable kafka

测试生产消费

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list zk1:9092,zk2:9092,zk3:9092 --topic test1 生产
/usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper zk1:2181,zk2:2181,zk3:2181 --from-beginning --topic test1 消费

kafka消息监控

可以使用kafka-manager来管理集群

转载于:https://www.cnblogs.com/knmax/p/9328306.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网盈利模式77种创新 【 很八股的标题,不过内容还是可以参考一下的 】

http://it.icxo.com/htmlnews/2006/05/26/854682.htm当整个世界都在为互联网喝彩的时候,人们心中往往都会进行这样的思考--我怎样才能在互联网上获得财富?其实,这个问题是没有人能够回答的,因为可以回答的人正在为获得财富忙得不可…

.gitignore文件_Java小白入门,Git忽略文件.gitignore详解

在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。Git 忽略规则优…

Xamarin Essentials教程磁力计Magnetometer

Xamarin Essentials教程磁力计Magnetometer磁力计也叫地磁、磁感器,可用于测试磁场强度和方向。在手持设备中,通过磁力计可以计算设备的左右、前后倾斜角度,广泛应用于手机各种的应用中。在Xamarin中,开发者可以使用Xamarin.Essen…

python 字符串截取_Python 字符串操作实现代码(截取/替换/查找/分割)

Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。 # 例1:字符串截取 str 12345678 print str[0:1] >> 1 # 输出str位…

VMware的linux虚拟机实现和windows的文件共享

使用的centos7和windows10,在虚拟机centos7中是root身份。由于是第一次用没有界面的linux,可谓是困难重重…… 一 打开VMware,然后选中你的虚拟机,我的是centos7。然后点击工具栏”虚拟机“,然后选择”安装VMware tool…

XYZ DOWN-电子书

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshowC Primer 中文第三版 http://dl5.mydown.com/test/ziliao/at2004…

通汇手机为何卖得那么红火

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow通汇手机连锁去年销量又高居粤西地区榜首通汇手机为何卖得那么红…

OpenCV+3计算机视觉++Python语言实现+第二版pdf

下载地址:网盘下载 OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等)。理解与计算机视觉相关的算法…

javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳

上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符。引言逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是:!…

〖强暴贴〗号称全国最大开发者网络的CSDN多次出现低级错误 验证码形同虚设 开发人员竟是MVP

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow主  题:【醒目】〖强暴贴〗号称全国最大开发者网络…

MySQL系统自带的数据库information schema

转自:https://www.cnblogs.com/shengdimaya/p/6920677.html#commentform information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部分我…

micropython oled中文_micropython中怎么将gb2312编码的字节流变成中文

展开全部 # -*- code: utf-8 -*- # 在 micropython 中运行, 注意在运行目录下有 hzk12/16 # 啊 是汉字区第1个汉字,62616964757a686964616fe59b9ee7ad9431333431353932对应数据为 ?不对? # 0x00, 0x00, 0x0E, 0xFC, 0xEA, 0x08, 0xAA, 0x08, # 0xAA, 0x…

DOS那一代的程序员现在都干嘛呢

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow亿友论坛-DOS那一代的程序员现在都干嘛呢?&#xff0…

弟子规python编程游戏_《Python游戏趣味编程》 第11章 消灭星星

知乎视频​www.zhihu.com图书简介可以看这里:童晶:《Python游戏趣味编程》新书上架了​zhuanlan.zhihu.com消灭星星是一款非常容易上瘾的消除类游戏,只需点击一个方块,如果和其连接的有两个或两个以上颜色相同的方块即可消除&…

python判断英文字母_python判断字符串中是否含有英文 | 个人学习笔记记录

第一种方法: #-*- coding:utf-8 -*- import re def check(str): my_re re.compile(r[A-Za-z],re.S) res re.findall(my_re,str) if len(res): print u含有英文字符 else: print u不含有英文字符 if __name__ __main__: str 你好123hello check(str) str1 你好1…

idea ssm项目移包报错问题

写完代码之后发现包结构太乱了 想要规划一下 结果报错 这里面的包路径都可以点进去,还是报找不到com.lf.company.entity.Business 后来发现是 在移动前和移动后都存在这个mapper。xml 解决方案: 在这里把多余的删掉转载于:https://www.cnblogs.com/NCL…

matlab 写excel 慢_吐槽一下MATLAB的workspace

用MATLAB编程,或者Simulink建模仿真,有一个特别强大、特别人性化的功能,可以在workspace中直接查看定义的参数和运行的结果 无论是仿真的调试,结果的分析,或是中途的Debug,workspace都发挥着至关重要的作用…

python运行是哪个键_python – 如何使用回车键调用按钮命令

在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 python 3.6.1. 这是我尝试过的 self.startButton.bind(, self.startButton.invoke)…

WEBSHELL权限提升 菜菜

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow动网上传漏洞,相信大家拿下不少肉鸡吧,但…

MATLAB 图形着色

1.matlab中的颜色查找表函数: (1)autumn:从红色向橘黄色、黄色平稳过渡; (2)bone:为含有较高的蓝色组分的gray颜色查找表; (3)colorcube:包含RGB颜…