ZooKeeper简介与安装

ZooKeeper简介与安装

ZooKeeper是一个非常流行的分布式系统协调服务。目前的应用非常广泛。

ZooKeeper简介

一个分布式的协调服务

特点

  • 分布式集群
  • 高可用
  • 奇数个节点

功能

  • 管理应用的状态数据
  • 提供对状态数据的监听服务

ZooKeeper的应用场景

服务器主从选举

目前有多个服务器提供服务,但是为了保证数据的一致性,每一时刻只能有一个服务器来提供服务,其他服务器作为主服务器的备份,如果主服务器挂了,备份的服务器成为主服务器。

批量更新配置

如果我们有多个服务器节点需要更新同样的配置文件内容,逐步的手工修改是非常繁琐的,而且也很容易出错。此时将配置文件存放在第三方,如果配置文件修改之后由ZooKeeper通知其他节点,各节点自己读取配置文件即可。

其他

  • 分布式锁
  • 客户端高可用

ZooKeeper集群的角色分配

一开始时并没有规定哪个节点是主节点,哪些节点是从节点。在ZooKeeper集群中各节点启动完成后各节点选举(Zab算法)来产生主节点。

在写入数据时,新的数据被传递给Leader,Leader写入后通知各Follower来更新数据来保证数据的一致。如果ZooKeeper集群规模很大,数据的一致性会有很长的延时,此时客户端看到的数据可能不一样,因此ZooKeeper不适合频繁更新,实时性要求很高的应用。

ZooKeeper安装

由于ZooKeeper的半数安装机制,所以至少装3台。主要的工作是配置myid和节点列表。

因为我们的集群不暴露给外界,而且其他的框架

安装JDK

这步省略了

安装过程

1.下载ZooKeeper

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

2.安装到主节点

上传文件

put -r "C:\Users\Yang\Desktop\zookeeper-3.4.9.tar.gz"

解压到指定目录

tar -zxvf zookeeper-3.4.9.tar.gz -C /root/apps

修改配置文件zoo.cfg

cd /root/apps/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

修改配置文件主要有几个地方,一个是dataDir,一个是server的列表。
下面给出一个配置模板。

# 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=/root/apps/zookeeper-3.4.9/zkData
# 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
server.1=amaster:2888:3888
server.2=anode1:2888:3888
server.3=anode2:2888:3888

然后要把myid配置到数据目录下面。

mkdir -p /root/apps/zookeeper-3.4.9/zkData
cd /root/apps/zookeeper-3.4.9/zkData
echo 1 >> myid
3.将ZooKeeper安装到其他节点中

从主节点将ZooKeeper拷贝到其他节点中

scp -r /root/apps/zookeeper-3.4.9/ root@anode1:/root/apps/zookeeper-3.4.9
scp -r /root/apps/zookeeper-3.4.9/ root@anode2:/root/apps/zookeeper-3.4.9

在其他节点上修改myid的值分别为2和3

echo 2 > /root/apps/zookeeper-3.4.9/zkData/myid

关闭防火墙,在所有节点上执行

ufw disable
4.启动ZooKeeper

在所有节点上执行下列命令开启ZooKeeper。

/root/apps/zookeeper-3.4.9/bin/zkServer.sh start

然后可以通过下列命令查看ZooKeeper的状态。

/root/apps/zookeeper-3.4.9/bin/zkServer.sh status

如果出现类似的结果,则说明启动成功。

ZooKeeper JMX enabled by default
Using config: /root/apps/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader

否则可以在ZooKeeper.out文件中查看启动日志。

下面再给出一个自动启动所有机器上的ZooKeeper的脚本。

#!/bin/sh

SERVERS="amaster anode1 anode2"

start_zookeeper_all() {
    for SERVER in $SERVERS
    do
        ssh $SERVER "source ~/.bashrc;/root/apps/zookeeper-3.4.9/bin/zkServer.sh stop"
        ssh $SERVER "source ~/.bashrc;/root/apps/zookeeper-3.4.9/bin/zkServer.sh start"
    done

    for SERVER in $SERVERS
    do
        ssh $SERVER "source ~/.bashrc;/root/apps/zookeeper-3.4.9/bin/zkServer.sh status"
    done
}

start_zookeeper_all

如果启动不了,可能是JAVA_HOME没有被导出,需要将~/.bashrc中的

export JAVA_HOME=/root/apps/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin

放到

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

的前面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZooKeeper 和 Kafka 是两个常用的大数据组件,它们在分布式系统中扮演着关键角色。 **Zookeeper 安装**: ZooKeeper 是一个分布式协调服务,主要用于维护配置信息、命名空间和提供同步服务。以下是基本的安装步骤: 1. **下载**: 访问 Apache ZooKeeper 的官方网站(https://zookeeper.apache.org/releases.html)下载适合你操作系统的二进制包。 2. **解压**: 解压缩下载的文件,并得到 `bin` 目录中的可执行文件。 3. **配置**: 配置 `conf/zoo.cfg` 文件,设置数据目录(dataDir)和其他配置项。 4. **启动**: 在 `bin` 目录下执行 `zkServer.sh start`(Linux/Mac)或 `zkServer.cmd start`(Windows)开始服务。 5. **验证**: 使用 `zkCli.sh` 或 `bin/zkServer.sh status` 来检查服务是否运行正常。 **Kafka 安装**: Kafka 是一个分布式流处理平台,用于高吞吐量的实时数据管道。以下是安装 Kafka 的一般步骤: 1. **下载**: 从 Apache Kafka 官网下载最新的二进制包。 2. **配置**: 设置环境变量,编辑 `config/server.properties` 文件,定义 brokers、主题、分区等。 3. **创建实例**: 创建一个或多个 Kafka 服务器,可以通过 `bin/kafka-server-start.sh` 命令启动。 4. **生产者与消费者**: 使用 `bin/kafka-console-producer.sh` 和 `bin/kafka-console-consumer.sh` 进行简单的生产消费测试。 5. **集群部署**: 如果需要分布式部署,配置多台机器并使用 `kafka-topics.sh` 命令创建和管理主题。 **相关问题--:** 1. ZooKeeper 和 Kafka 在大数据场景中分别负责什么? 2. 如何在生产环境中安全地部署和管理多节点的 Kafka 集群? 3. 在使用 Kafka 时,如何保证消息的可靠性和顺序性?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值