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

[经验分享] zookeeper 和 kafka 的安装使用

[复制链接]

尚未签到

发表于 2019-1-8 09:30:56 | 显示全部楼层 |阅读模式
  前提都安装JDK 6版本以上
  java -version
  java version "1.7.0_79"
  

  

  测试环境集群结构(三台集群的hosts一定要互相解析 不然会很坑)
  

  server1: 192.168.100.10
  server1: 192.168.100.13
  server1: 192.168.100.20
  

  安装包:
  zookeeper-3.4.9.tar.gz
  kafka_2.11-0.10.1.0.tgz
  

  背景:
  为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的 ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper 拥有 5 台机器,那么它就能处理 2 台机器的故障了。
  

  

  

  ### zookeeper的集群安装##################
  

  1、安装包下载到/usr/local/src
  2、解压至安装路径/usr/localcd
  cd /usr/local/src/
  tar -xvf zookeeper-3.4.9.tar.gz   -C /usr/local/
  cd /usr/local
  ln -s zookeeper-3.4.9/ zookeeper
  

  

  3、修改配置文件
  cd  cd /usr/local/zookeeper/conf/
  cp zoo_sample.cfg zoo.cfg
  

  配置文件(每台zookeeper的配置文件都一样)
  [root@master conf]# cat zoo.cfg
  # The number of milliseconds of each tick
  tickTime=2000
  # The number of ticks that the initial
  # synchronization phase can take
  initLimit=10
  # The number of ticks that can pass between
  # sending a request and getting an acknowledgement
  syncLimit=5
  # the directory where the snapshot is stored.
  # do not use /tmp for storage, /tmp here is just
  # example sakes.
  dataDir=/usr/local/zookeeper/data
  # the port at which the clients will connect
  clientPort=2181
  # the maximum number of client connections.
  # increase this if you need to handle more clients
  #maxClientCnxns=60
  #
  # Be sure to read the maintenance section of the
  # administrator guide before turning on autopurge.
  #
  # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  #
  # The number of snapshots to retain in dataDir
  #autopurge.snapRetainCount=3
  # Purge task interval in hours
  # Set to "0" to disable auto purge feature
  #autopurge.purgeInterval=1
  

  #第一个端口( port )是从( follower )机器连接到主( leader )机器的端口
  #第二个端口是用来进行 leader 选举的端口
  server.1=192.168.100.10:2888:3888
  server.2=192.168.100.13:2888:3888
  server.3=192.168.100.20:2888:3888
  

  

  

  

  ### 注释:
  在这个文件中,我们需要指定 dataDir 的值,它指向了一个目录,这个目录在开始的时候需要为空。下面是每个参数的含义:
  tickTime :基本事件单元,以毫秒为单位。它用来指示心跳,最小的 session 过期时间为两倍的 tickTime. 。
  dataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。
  clientPort :监听客户端连接的端口
  #server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。
  

  

  

  

  4、创建数据目录和创建myid文件
  mkdir /usr/local/zookeeper/data
  echo "1" > /usr/local/zookeeper/data/myid
  

  

  

  

  

  ### 配置其他节点
  myid要不一样
  

  

  5、启动集群
  按照上述进行配置即可。
  第五步:启动ZooKeeper集群
  在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:
  cd /usr/local/zookeeper/
  bin/zkServer.sh start
  bin/zkServer.sh start
  bin/zkServer.sh start
  

  

  查看日志:(日志生成在执行启动的目录下)
  tail -f zookeeper.out
  

  

  查看监听的端口:(Leader端 才监听2888 端口,follower是不监听的,只监听3888端口)
  [root@agent zookeeper]# netstat -tulnp |grep 88
  tcp        0      0 ::ffff:192.168.100.13:3888  :::*                        LISTEN      18526/java
  tcp        0      0 ::ffff:192.168.100.13:2888  :::*                        LISTEN      18526/java
  [root@agent zookeeper]# netstat -tulnp |grep 2181
  tcp        0      0 :::2181                     :::*                        LISTEN      18526/java
  [root@agent zookeeper]#
  

  

  

  6 验证
  

  ./bin/zkServer.sh  status
  

  

  注释: 因为启动顺序是从第一台开始的 所以看日志第一台会有日志因为第二台第三台还未启动,一会就正常了忽略
  

  

  看到各个角色(leader选举出来表示集群正常) 通过上面状态查询结果可见,第二台是集群的Leader,其余的两个结点是Follower。
  [root@agent zookeeper]# ./bin/zkServer.sh  status
  ZooKeeper JMX enabled by default
  Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
  Mode: leader
  

  

  7、测试客户端命令连接
  ./bin/zkCli.sh -server 192.168.100.10:2181
  

  连接上去之后:
  执行命令
  [zk: 192.168.100.10:2181(CONNECTED) 4] ls /
  [zookeeper]
  

  

  

  注: 当前根路径为/zookeeper。
  

  

  

  

  

  

  

  ################# 安装kafka
  下载包
  [root@master src]# ll kafka_2.11-0.10.1.0.tgz
  -rw-r--r-- 1 root root 34373824 Oct 20  2016 kafka_2.11-0.10.1.0.tgz
  

  1、解压至安装目录
  tar -xvf kafka_2.11-0.10.1.0.tgz -C /usr/local/
  cd /usr/local/
  ln -s kafka_2.11-0.10.1.0/ kafka
  

  

  

  

  2、修改配置文件
  cd /usr/local/kafka/config
  vim server.properties
  

  需要修改的项目:
  # The id of the broker. This must be set to a unique integer for each broker
  broker.id=1
  

  

  

  

  # A comma seperated list of directories under which to store log files
  log.dirs=/usr/local/kafka/logs
  

  # Zookeeper connection string (see zookeeper docs for details).
  # This is a comma separated host:port pairs, each corresponding to a zk
  zookeeper.connect=192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181
  

  

  注意:每台kafka的broer.id 是不一样的
  3、创建日志目录
mkdir /usr/local/kafka/logs  

  

  

  

  4、### 配置其他节点
  

  

  5、启动
  从后台启动Kafka集群(3台都需要启动)
cd /usr/local/kafka/bin/
./kafka-server-start.sh -daemon  ../config/server.properties  

  [root@master bin]# jps
  7449 Jps
  7427 Kafka             #kafka进程
  31341 QuorumPeerMain   #zk进程
  

  

  如果(3个kafka进程都在表示正常,配置文件错误是服务起不了)
  

  查看启动日志:
  tail -f  /usr/local/kafka/logs/server.log
  

  

  6、测试kafka集群
  

  1-进入kafka根目录,创建topic   test
./bin/kafka-topics.sh --create --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --replication-factor 1 --partitions 1 --topic test  结果:
  Created topic "test".
  

  

  2-列出已创建的topic列表
./bin/kafka-topics.sh --list --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181  结果:
  test
  

  或者使用zookeeper命令去查看
./bin/zkCli.sh -server 192.168.100.10:2181  [zk: 192.168.100.10:2181(CONNECTED) 3] ls /brokers/topics
  [test]
  

  

  

  3-模拟客户端去发送消息
  

  ./bin/kafka-console-producer.sh --broker-list 192.168.100.10:9092,192.168.100.13:9092,192.168.100.20:9092 --topic test
  

  4-模拟客户端去接受消息(虽然看到的是消费 但是因为消费么有删除每次 执行之前的模拟信息还会看到)
  ./bin/kafka-console-consumer.sh --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --from-beginning --topic test
  

  

  

  

  5、停止 在启动(重启)
  

  集群依次kafka都需要停止
./bin/kafka-server-stop.sh  

  集群依次kafka都需要启动
cd /usr/local/kafka/bin/
./kafka-server-start.sh -daemon  ../config/server.properties  

  

  

  6、 删除测试的test 的那个topic
./bin/kafka-topics.sh --delete --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --topic test  

  结果
  Topic test is marked for deletion.
  Note: This will have no impact if delete.topic.enable is not set to true.
  

  因为:
  如果kafaka启动时加载的配置文件中server.properties没有配置(默认没有配置 默认值为false)delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
  

  

  彻底删除进入zk
./bin/zkCli.sh -server 192.168.100.10:2181  rmr /brokers/topics/test
  





运维网声明 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-660610-1-1.html 上篇帖子: 部署单台zookeeper 下篇帖子: zookeeper activemq 搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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