设为首页 收藏本站
查看: 885|回复: 0

[经验分享] Zookeeper 集群+kafka集群+kafka manager搭建

[复制链接]

尚未签到

发表于 2019-1-8 07:24:21 | 显示全部楼层 |阅读模式
  软件需求,软件包都上传到 /usr/local/src目录:

      jdk-8u101-linux-x64.tar.gz
      kafka.2.11-0.8.22.tar.gz
      zookeeper-3.4.9.tar.gz
      kafka-manager-1.3.0.7.zip
  * kafka-manager是通过scala打包获取一个编译完的项目,需要提前编译好,参考 https://github.com/yahoo/kafka-manager
  

  硬件需求,四个主机:
      192.168.100.100 : kafka-manager , scala

      192.168.100.101 : kafka,zookeeper
      192.168.100.102 : kafka,zookeeper
      192.168.100.103 : kafka,zookeeper
  
  开始设置布置环境:
  192.168.100.101,192.168.100.102,192.168.100.103 环境安装包配置如下:
     
[root@ zookeeper-kafka-scala]# cd /usr/local/src
[root@ zookeeper-kafka-scala]# ll
total 310060
-rw-r--r-- 1 root root 181352138 Oct 10 18:31 jdk-8u101-linux-x64.tar.gz
-rw-r--r-- 1 root root  16038031 Oct 11 14:25 kafka.2.11-0.8.22.tar.gz
-rw-r--r-- 1 root root  68699247 Oct 10 18:00 kafka-manager-1.3.0.7.zip
-rw-r--r-- 1 root root  28678231 Oct 10 16:10 scala-2.11.8.tgz
-rw-r--r-- 1 root root  22724574 Oct 10 16:57 zookeeper-3.4.9.tar.gz
[root@ zookeeper-kafka-scala]# tar -xf jdk-8u101-linux-x64.tar.gz
[root@ zookeeper-kafka-scala]# tar -xf kafka.2.11-0.8.22.tar.gz
[root@ zookeeper-kafka-scala]# tar -xf zookeeper-3.4.9.tar.gz
[root@ zookeeper-kafka-scala]# ll
total 310072
drwxr-xr-x  8 uucp  143      4096 Jun 22 18:13 jdk1.8.0_101
-rw-r--r--  1 root root 181352138 Oct 10 18:31 jdk-8u101-linux-x64.tar.gz
drwxr-xr-x  6 root root      4096 Feb 24  2016 kafka
-rw-r--r--  1 root root  16038031 Oct 11 14:25 kafka.2.11-0.8.22.tar.gz
-rw-r--r--  1 root root  68699247 Oct 10 18:00 kafka-manager-1.3.0.7.zip
-rw-r--r--  1 root root  28678231 Oct 10 16:10 scala-2.11.8.tgz
drwxr-xr-x 10 1001 1001      4096 Aug 23 15:42 zookeeper-3.4.9
-rw-r--r--  1 root root  22724574 Oct 10 16:57 zookeeper-3.4.9.tar.gz
[root@ zookeeper-kafka-scala]# mv kafka /usr/local/kafka
[root@ zookeeper-kafka-scala]# mv zookeeper-3.4.9 /usr/local/zookeeper
[root@ zookeeper-kafka-scala]# mv jdk1.8.0_101 /usr/local/java
[root@ zookeeper-kafka-scala]# echo 'export PATH=$PATH:/usr/local/java/bin/:/usr/local/kafka/bin/:/usr/local/scala/bin:/usr/local/zookeeper/' /etc/profile
[root@ zookeeper-kafka-scala]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)  

  

  开始配置zookeeper集群,三个集群机器都配置如下:
  
## 编辑/usr/local/zookeeper/conf/zoo.cnf文件,内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
dataLogDir=/usr/local/zookeeper/log
clientPort=2181
maxClientCnxns=300
server.1=192.168.100.101:2888:3888     
server.2=192.168.100.102:2888:3888     
server.3=192.168.100.103:2888:3888
[root@ conf]# mkdir -p /data/zookeeper
[root@ conf]# mkdir -p /usr/local/zookeeper/log
#192.168.100.101 在zookeeper 中id是1 执行下面
[root@ conf]# echo 1 > /data/zookeeper/myid
#192.168.100.102 在zookeeper 中id是2 执行下面
[root@ conf]# echo 2 > /data/zookeeper/myid
#192.168.100.103 在zookeeper 中id是3 执行下面
[root@ conf]# echo 3 > /data/zookeeper/myid  三台机器的防火墙放开zookeeper端口 2181,2888,3888
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2181 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2888 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3888 -j ACCEPT  

  启动zookeeper,启动完,会自动推选其中一台是leader
[root@ bin]# cd  /usr/local/zookeeper/bin
[root@ bin]# ./zkServer.sh start
[root@ bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader  
  

  开始配置kafka集群,三个集群机器都配置如下:
  

编辑 /usr/local/kafka/config/server.properties
##broker标识,每个broker靠这个标识区别
## 192.168.100.101 是 1
## 192.168.100.102 是 2
## 192.168.100.102 是 3
broker.id=1
## 用来侦听连接的端口,生产者或消费者连接该端口
port=9990
## 指定broker网络地址,根据kafka所在的ip填写
host.name=192.168.100.101
#host.name=192.168.100.102
#host.name=192.168.100.103
num.network.threads=4
##每个分区的备份个数,默认为,值过大可能导致同步时延迟大
num.partitions=3
## zookeeper 集群,kafka需要zookeeper来保存meata信息
zookeeper.connect=192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181
## 同CPU核数一样就可以
num.io.threads=4
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
##日志文件保存目录
log.dirs=/data/kafka
num.recovery.threads.per.data.dir=1
log.segment.bytes=1073741824
## 日志保留最长时间小时,以及日志策略
log.retention.hours=24
log.retention.check.interval.ms=300000
log.cleaner.enable=true
log.cleanup.policy=delete
zookeeper.connection.timeout.ms=6000
controller.message.queue.size=10
## 每个topic默认分片存储数量
default.replication.factor=2
## 允许上传topic
delete.topic.enable=true
auto.create.topics.enable=false  编辑 /usr/local/kafka/bin/kafka-server-start.sh
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    #export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
# 修改上面的内容变成,KAFKA_HEAP_OPTS这个根据自己的主机进行配置,测试机器是4核8G,所以采用下面的配置:
# 这个配置成本机的IP -Djava.rmi.server.hostname=192.168.100.101
# 开启jvm 的rmi配置可以让kafka-manager提供更详细的kafka操作统计数据
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx3G -Xms3G -Xmn1G"
    export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.ho
stname=192.168.100.101"
fi  启动kafka

[root@ bin]# /usr/local/kafka/bin/kafka-server-start.sh -daemon  /usr/local/kafka/config/server.properties
## 可以看到kafka进程是否启动
[root@ bin]#   ps -ef |grep java  

  开放iptables防火墙,8990,9990端口
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8999 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 9990 -j ACCEPT  

  测试kafka集群

[root@ bin]# cd /usr/local/kafka/bin/
[root@ bin]# ./kafka-topics.sh --zookeeper 192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181 --create  --topic test  
[root@ bin]# ./kafka-topics.sh --zookeeper 192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181  --list
test  
  

  192.168.100.100 安装kafka-manager业务
[root@ src]# cd /usr/local/src
[root@ src]# unzip  kafka-manager-1.3.0.7.zip
[root@ src]# mv kafka-manager-1.3.0.7 /usr/local/kafka-manager  

  配置kafka-manager的配置文件 /usr/local/kafka-manager/conf/application.conf
##修改zookeeper集群ip
kafka-manager.zkhosts="192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181"  

  

  启动kafka-manager, 防火墙放开9000端口
[root@ bin]# cd  /usr/local/kafka-manager/bin
[root@ bin]# ./kafka-manager  

  浏览器访问 http://192.168.100.100:9000,可以看到下面界面,说明安装完成
  
  

  添加一个集群进入,填写后,其它默认,点击save,那么就可以看到标题已经添加

  
  

  由于都是web操作,比较简单,其它的功能可以自己试试,这个不是重点,这里不多说

  

  
  

  kafka集群压力测试
[root@ bin]# cd /usr/local/kafka/bin/
## 消费者压力测试,单线程压500w条消息
[root@ bin]#  ./kafka-consumer-perf-test.sh --zookeeper 192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181 --messages 50000000 --topic test --threads 1
## 生产者压力测试,8个线程,压500w条消息,每条消息大小100B,每批10000条
[root@ bin]#  ./kafka-producer-perf-test.sh --messages 5000000 --message-size 100  --batch-size 10000 --topics test  --threads 8 --broker-list 192.168.100.101:2181,192.168.100.102:2181,192.168.100.103:2181  由于搭建的环境已经在生产使用,就不截图列出
  

  

  

  

  

  

        





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660512-1-1.html 上篇帖子: 【亲测】Marathon+Mesos+Zookeeper集群平台部署(实现多实例Docker) 下篇帖子: ZooKeeper的一个性能测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表