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

[经验分享] kafka 、 zookeeper 集群(二)

[复制链接]

尚未签到

发表于 2019-1-8 08:28:00 | 显示全部楼层 |阅读模式
  一、zookeeper集群安装

  要求:
zookeeper的 jdk 要 6以上
zookeeper生产环境版本为 3.4.8

  

  1.首先编辑/etc/hosts
在5台都加入:
10.0.50.10 zk-kafka01
10.0.50.11 zk-kafka02
10.0.50.12 zk-kafka03
10.0.50.13 zk-kafka04
10.0.50.14 zk-kafka05
2.更改hostname
1.vim /etc/sysconfig/network
2.hostname zk-kafka0*
以下为主机名对应关系
10.0.50.10 zk-kafka01
10.0.50.11 zk-kafka02
10.0.50.12 zk-kafka03
10.0.50.13 zk-kafka04
10.0.50.14 zk-kafka05
3.安装软件包
mkdir -p /app/zpy/3rd/zookeeper
mkdir -p /app/zpy/zookeeper
cd /app/zpy/3rd/zookeeper/
rz (包在svn上)
解压
cd /app/zpy/3rd/zookeeper/zookeeper-3.4.8
cp -a * /app/zpy/zookeeper/
--------------------------------------
此处注意,按照运维标准化原则来说,此处应该 chown 目录权限至zpy,但是担心一组会有较多改动,前期先用root用户,
待5台全部部署完毕后,再进行整体权限收回和切换
--------------------------------------
cd /app/zpy/zookeeper/conf
cp zoo_sample.cfg zoo.cfg (拷贝模版配置文件生成新的配置文件)
然后创建zk的data存放目录
mkdir -p /data/zpy/zookeeper
然后我们开始修改配置文件了

  1.修改数据和快照存储路径,路径为上方设置的
  dataDir=/data/zpy/zookeeper
  

  2.在配置文件最后添加zk集群关系
  (2888端口是leader的端口,3888端口是leader挂掉后选举leader用到的通讯渠道端口)
  server.1=zk-kafka01:2888:3888
  server.2=zk-kafka02:2888:3888
  server.3=zk-kafka03:2888:3888
  server.4=zk-kafka04:2888:3888
  server.5=zk-kafka05:2888:3888
  配置文件这就改好了
  注意:
  
  tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
  dataDir:顾名思义就是Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
  clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
  initLimit:这个配置项是用来配置Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
  syncLimit:这个配置项标识Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是2*2000=4 秒
  server.A=BCD:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号
  


  

  3.创建myid文件,并输入编号
  echo "1" > /data/zpy/zookeeper/myid
  其他四台分别为 2 3 4 5
  

  4.启动zookeeper集群,5台最好同时启动,间隔时间不要相差太大
  cd /app/zpy/zookeeper/bin/
./zkServer.sh start

  

  5.检查状态,一个leader,4个follower
  [root@zk-kafka05 bin]#./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /app/zpy/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@zk-kafka04 bin]# ./zkServer.sh status

  ZooKeeper JMX enabled bydefault
Using config: /app/zpy/zookeeper/bin/../conf/zoo.cfg
Mode: follower

  6.测试zookeeper是否正常工作,在server1上执行以下命令
  # /home/wwb/zookeeper/bin/zkCli.sh -server192.168.0.2:2181,出现类似以下内容
  JLine support is enabled
  2013-11-27 19:59:40,560 -INFO     [main-SendThread(localhost.localdomain:2181):ClientCnxn$SendThread@736]-Session establishmentcomplete on server localhost.localdomain/127.0.0.1:2181, sessionid=    0x1429cdb49220000, negotiatedtimeout = 30000
  WATCHER::
  WatchedEventstate:SyncConnected type:None path:null
  [zk: 127.0.0.1:2181(CONNECTED) 0]
  


  二、kafka集群安装
1.下载

wget http://apache.fayea.com/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
版本需要注意,不要选取这个版本之前的版本,有明显bug,但是也不要选最新的,操作命令不一样,研发还需要去学习 解压
2.安装、配置
最后安装在 /app/zpy/kafka 下
修改配置文件 config下的 server.properties
修改项:
broker.id=10 --这个id如果部署的是kafka集群,id是不能一样的,可以以节点ip最后一位命名。
port=9092 --默认kafka端口,如果一台机器上面部署了多个kafka实例,需要两个实例端口不一样
log.dirs=/data/zpy/kafka10-logs ----这个是kafka日志文件存放路径,默认是/tmp下的,重启会消                                     失,所以我们更换目录
num.partitions=1 ---这个需要与研发商议,与数据插入顺序有关。具体有研发的程序决定。如果研发                   程序中设置了3个partition,配置文件中设置为1也不生效。配置文件只作为默认                     值。
zookeeper.connect=10.0.50.10:2181,10.0.50.11:2181,10.0.50.12:2181,10.0.50.13:2181,10.0.50.14:2181/kafkagroup kafka实现功能需要zookeeper调度,所以这是与zk单机或者集群的连接,上面是与                   集群连接的方式,也可以去掉/kafkagroup,但是zk的znode结构就会比较混乱,所以                   建议加上一个路径。/路径下存放znode相关信息,最好创建一个目录,如                           kafkagroup存放kafka集群的信息
zookeeper.connection.timeout.ms=6000 ----连接zk超时时间
修改kafka的启动脚本(调节启动内存占用大小) cd kafka/bin
vim kafka-server-start.sh
修改28-29行
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx32G -Xms8G"3.启动
kafka启动(一定后台启动):
./kafka-server-start.sh ../config/server.properties &
4.启动后验证
查看zk集群的znode节点信息 zk是有客户端工具的,可以下载使用,但是zk程序中也自带了程序监测 进入zk的bin目录下
[root@zk-kafka01 bin]# sh zkCli.sh
Connecting to localhost:2181 Welcome to ZooKeeper! JLine support is enabled WATCHER:: WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[kafkagroup, zookeeper]
可以看到我们在kafka里设置的kafkagroup
5.创建Topic(包含3个分区,2个备份副本)
## ./kafka-topics.sh --create --zookeeper 10.0.140.26:2181/kafka --replication-factor 2 --partition 3 --topic zxytest
Created topic "zxytest".
  6.查看topic情况
  # cd /app/zpy/zookeeper/bin
  # sh zkCli.sh
  [zk: localhost:2181(CONNECTED) 1] ls /
  [zk, consumers, brokers, zk01, zookeeper, kafka]
  [zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers/topics/
  zxytest
  

  7.模拟topic生产数据信息
  

  # ./kafka-console-producer.sh --broker-list 10.0.50.10:9092 --topic zxytest
  模拟输入内容
  hello
  world
  

  8.模拟消费者接收数据
  # ./kafka-console-consumer.sh --zookeeper 10.0.50.10:2181/kafka --topic zxytest --from-beginning
  会接收到生产的数据信息
  hello
  world
  





运维网声明 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-660553-1-1.html 上篇帖子: Zookeeper Memory leak 下篇帖子: 部署Mesos+zookeeper+Marathon+Docker实战
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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