码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Zookeeper集群安装部署、Kafka集群安装部署


    目录

    1.  Zookeeper简介

    2.  Zookeeper安装

    2.1  首先,要确保已经完成了集群化环境前置准备环节的全部内容

    2.2  【node1上操作】下载Zookeeper安装包,并解压

    2.3 【node1上操作】创建软链接

    2.4 【node1上操作】修改配置文件

    2.5 【node1上操作】配置myid

    2.6 【在node2和node3上操作】,创建文件夹

    2.7 【node1上操作】将Zookeeper 复制到node2和node3

    2.8 【在node2上操作】

    2.9 【在node3上操作】

    2.10 【在node1、node2、node3上分别执行】启动Zookeeper

    2.11 【在node1、node2、node3上分别执行】检查Zookeeper进程是否启动

    2.12 【node1上操作】验证Zookeeper

    3.  Kafka简介

    4.  Kafka安装

    4.1  确保已经跟随前面步骤,安装并部署了JDK和Zookeeper服务

    4.2  【在node1操作】下载并上传Kafka的安装包

    4.3  【在node1操作】解压

    4.4  【在node1操作】修改Kafka目录内的config目录内的server.properties 文件

    4.5  【在node1操作】将node1的kafka复制到node2和node3

    4.6  【在node2操作】

    4.7  【在node3操作】

    4.8  启动kafka

    4.9  验证Kafka启动

    5.  测试Kafka能否正常使用

    5.1  创建测试主题

    5.2  运行测试,请在FinalShell中打开2个node1的终端页面


    1.  Zookeeper简介

            ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

            除了为Hadoop和HBase提供协调服务外,Zookeeper也被其它许多软件采用作为其分布式状态一致性的依赖,比如Kafka,又或者一些软件项目中,也经常能见到Zookeeper作为一致性协调服务存在。

            Zookeeper不论是大数据领域亦或是其它服务器开发领域,涉及到分布式状态一致性的场景,总有它的身影存在。

    2.  Zookeeper安装

    Zookeeper是一款分布式的集群化软件,可以在多台服务器上部署,并协同组成分布式集群一起工作。

    2.1  首先,要确保已经完成了集群化环境前置准备环节的全部内容

    链接:集群化环境前置准备_时光の尘的博客-CSDN博客

    2.2  【node1上操作】下载Zookeeper安装包,并解压

    1. # 下载
    2. wget
    3. http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
    4. # 确保如下目录存在,不存在就创建
    5. mkdir -p /export/server
    6. # 解压
    7. tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server

    2.3 【node1上操作】创建软链接

    ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper

    2.4 【node1上操作】修改配置文件

    1. vim /export/server/zookeeper/conf/zoo.cfg
    2. tickTime=2000
    3. # zookeeper数据存储目录
    4. dataDir=/export/server/zookeeper/data
    5. clientPort=2181
    6. initLimit=5
    7. syncLimit=2
    8. server.1=node1:2888:3888
    9. server.2=node2:2888:3888
    10. server.3=node3:2888:3888

    2.5 【node1上操作】配置myid

    1. # 1. 创建Zookeeper的数据目录
    2. mkdir /export/server/zookeeper/data
    3. # 2. 创建文件,并填入1
    4. vim /export/server/zookeeper/data/myid
    5. # 在文件内填入1即可

    2.6 【在node2和node3上操作】,创建文件夹

    mkdir -p /export/server

    2.7 【node1上操作】将Zookeeper 复制到node2和node3

    1. cd /export/server
    2. scp -r apache-zookeeper-3.5.9 node2:`pwd`/
    3. scp -r apache-zookeeper-3.5.9 node3:`pwd`/

    2.8 【在node2上操作】

    1. # 1. 创建软链接
    2. ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper
    3. # 2. 修改myid文件
    4. vim /export/server/zookeeper/data/myid
    5. # 修改内容为2

    2.9 【在node3上操作】

    1. # 1. 创建软链接
    2. ln -s /export/server/apache-zookeeper-3.5.9 /export/server/zookeeper
    3. # 2. 修改myid文件
    4. vim /export/server/zookeeper/data/myid
    5. # 修改内容为3

    2.10 【在node1、node2、node3上分别执行】启动Zookeeper

    1. # 启动命令
    2. /export/server/zookeeper/bin/zkServer.sh start
    3. # 启动Zookeeper

    2.11 【在node1、node2、node3上分别执行】检查Zookeeper进程是否启动

    1. jps
    2. # 结果中找到有:QuorumPeerMain 进程即可

    2.12 【node1上操作】验证Zookeeper

    1. /export/server/zookeeper/zkCli.sh
    2. # 进入到Zookeeper控制台中后,执行
    3. ls /
    4. # 如无报错即配置成功
    至此 Zookeeper 安装完成

    3.  Kafka简介

    Kafka 是一款 分布式的、去中心化的、高吞吐低延迟、订阅模式 的消息队列系统。
    同RabbitMQ 一样, Kafka 也是消息队列。不过 RabbitMQ 多用于后端系统,因其更加专注于消息的延迟和容错。
    Kafka 多用于大数据体系,因其更加专注于数据的吞吐能力。
    Kafka 多数都是运行在分布式(集群化)模式下,所以课程将以 3 台服务器,来完成Kafka集群的安装部署。

    4.  Kafka安装

    4.1  确保已经跟随前面步骤,安装并部署了JDK和Zookeeper服务

    Kafka 的运行依赖 JDK 环境和 Zookeeper 请确保已经有了 JDK 环境和Zookeeper

    4.2  【在node1操作】下载并上传Kafka的安装包

    1. # 下载安装包
    2. wget
    3. http: / archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

    4.3  【在node1操作】解压

    1. mkdir -p /export/server # 此文件夹如果不存在需先
    2. 创建
    3. # 解压
    4. tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/
    5. # 创建软链接
    6. ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka

    4.4  【在node1操作】修改Kafka目录内的config目录内的server.properties 文件

    1. cd /export/server/kafka/config
    2. # 指定broker的id
    3. broker.id=1
    4. # 指定 kafka的绑定监听的地址
    5. listeners=PLAINTEXT: / node1:9092
    6. # 指定Kafka数据的位置
    7. log.dirs=/export/server/kafka/data
    8. # 指定Zookeeper的三个节点
    9. zookeeper.connect=node1:2181,node2:2181,node3:2181

    4.5  【在node1操作】将node1的kafka复制到node2和node3

    1. cd /export/server
    2. # 复制到node2同名文件夹
    3. scp -r kafka_2.12-2.4.1 node2:`pwd`/
    4. # 复制到node3同名文件夹
    5. scp -r kafka_2.12-2.4.1 node3:$PWD

    4.6  【在node2操作】

    1. # 创建软链接
    2. ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
    3. cd /export/server/kafka/config
    4. # 指定broker的id
    5. broker.id=2
    6. # 指定 kafka的绑定监听的地址
    7. listeners=PLAINTEXT: / node2:9092
    8. # 指定Kafka数据的位置
    9. log.dirs=/export/server/kafka/data
    10. # 指定Zookeeper的三个节点
    11. zookeeper.connect=node1:2181,node2:2181,node3:2181

    4.7  【在node3操作】

    1. # 创建软链接
    2. ln -s /export/server/kafka_2.12-2.4.1 /export/server/kafka
    3. cd /export/server/kafka/config
    4. # 指定broker的id
    5. broker.id=3
    6. # 指定 kafka的绑定监听的地址
    7. listeners=PLAINTEXT: / node3:9092
    8. # 指定Kafka数据的位置
    9. log.dirs=/export/server/kafka/data
    10. # 指定Zookeeper的三个节点
    11. zookeeper.connect=node1:2181,node2:2181,node3:2181

    4.8  启动kafka

    1. # 请先确保Zookeeper已经启动了
    2. # 方式1:【前台启动】分别在node1、2、3上执行如下语句
    3. /export/server/kafka/bin/kafka-server-start.sh
    4. /export/server/kafka/config/server.properties
    5. # 方式2:【后台启动】分别在node1、2、3上执行如下语句
    6. nohup /export/server/kafka/bin/kafka-server-start.sh
    7. /export/server/kafka/config/server.properties 2>&1
    8. >> /export/server/kafka/kafka-server.log &

    4.9  验证Kafka启动

    1. # 在每一台服务器执行
    2. jps

    5.  测试Kafka能否正常使用

    5.1  创建测试主题

    1. # 在node1执行,创建一个主题
    2. /export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh create --zookeeper node1:2181
    3. --replication-factor 1 --partitions 3 --topic test

    5.2  运行测试,请在FinalShell中打开2个node1的终端页面

    1. # 打开一个终端页面,启动一个模拟的数据生产者
    2. /export/server/kafka_2.12-2.4.1/bin/kafka-console--producer.sh --broker-list node1:9092
    3. --topic test
    4. # 再打开一个新的终端页面,在启动一个模拟的数据消费者
    5. /export/server/kafka_2.12-2.4.1/bin/kafka-console--consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning

  • 相关阅读:
    Linux文本处理工具awk用法总结
    文举论金:黄金原油全面走势分析策略独家指导
    部署和上线项目踩坑
    RichView TRVStyle ListStyle 列表样式(项目符号编号)
    多级缓存基础架构组件设计
    Ubuntu 20.04源码编译spice-gtk
    计算机网络之数据链路层
    Unions
    SpringBoot/Spring扩展点系列之初始化和销毁的3种办法 - 第438篇
    SpringBoot 工程打包成jar包&使用外部的配置文件启动
  • 原文地址:https://blog.csdn.net/MANONGDKY/article/details/133675725
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号