大数据技术基础实验五:Zookeeper实验——部署ZooKeeper

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
云原生网关 MSE Higress,422元/月
简介: 大数据技术基础实验五,学习如何在三台虚拟机上部署并启动ZooKeeper。

一、前言

本期我们将学习Hadoop项目下的另一个子项目——ZooKeeper,这个分布式服务框架在我们的后续实验中也会经常用到,它也是Hadoop中一个非常重要的组件。

二、实验目的与要求

  1. 掌握ZooKeeper集群安装部署,加深对ZooKeeper相关概念的理解,熟练ZooKeeper的一些常用Shell命令。
  2. 部署三个节点的ZooKeeper集群,通过ZooKeeper客户端连接ZooKeeper集群,并用Shell命令练习创建目录,查询目录等。

三、实验原理

ZooKeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

ZooKeeper是以Fast Paxos算法为基础的。

ZooKeeper集群的初始化过程:集群中所有机器以投票的方式(少数服从多数)选取某一台机器作为leader(领导者),其余机器作为follower(追随者)。如果集群中只有一台机器,那么就这台机器就是leader,没有follower。

ZooKeeper集群与客户端的交互:客户端可以在任意情况下ZooKeeper集群中任意一台机器上进行读操作;但是写操作必须得到leader的同意后才能执行。

ZooKeeper选取leader的核心算法思想:如果某服务器获得N/2 + 1票,则该服务器成为leader。N为集群中机器数量。为了避免出现两台服务器获得相同票数(N/2),应该确保N为奇数。因此构建ZooKeeper集群最少需要3台机器。

四、实验步骤

本实验主要介绍ZooKeeper的部署,ZooKeeper一般部署奇数个节点,部署方法包主要含安装JDK、修改配置文件、启动测试三个步骤。

1、安装JDK

学校服务器内已经安装JDK了所以不需要配置,而且一般的云服务器都会自带Java和Python环境,如果是自己本地的虚拟机的话就需要配置环境。

简单的讲一下配置JDK的过程:

  • 首先去到Oracle官网下载对应的jdk版本的压缩包
  • 然后通过Xftp工具将jdk压缩包上传到虚拟机上
  • 然后再虚拟机内解压刚才的jdk压缩包
  • 然后就是进入 etc/profile文件内配置jdk环境变量
  • 最后重启虚拟机并检查jdk环境是否配置成功

2、修改ZooKeeper配置文件

首先配置master,slave1和slave2之间的免密登录和各虚拟机的/etc/hosts文件,这个步骤请参考我之前的一篇博客,里面有详细过程:

大数据技术基础实验一:配置SSH免密登录

然后修改ZooKeeper的配置文件,步骤如下:

首先进入解压目录下,把conf目录下的zoo_sample.cfg赋值成zoo.cfg文件。

cd /usr/cstor/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

然后打开zoo.cfg并修改和添加配置项目:

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the port at which the clients will connectclientPort=2181# the directory where the snapshot is stored.dataDir=/usr/cstor/zookeeper/data
dataLogDir=/usr/cstor/zookeeper/log
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

image-20220930101127785.png

然后新建两个目录:

mkdir /usr/cstor/zookeeper/data
mkdir /usr/cstor/zookeeper/log

将/usr/cstor/zookeeper目录传到另外两台机器上。

scp -r /usr/cstor/zookeeper root@slave1:/usr/cstor
scp -r /usr/cstor/zookeeper root@slave2:/usr/cstor

image-20220930101437371.png

然后分别在三个节点上的/usr/local/zookeeper/data目录下创建一个文件:myid。

vi /usr/cstor/zookeeper/data/myid

分别在myid上按照配置文件的server. 中id的数值,在不同机器上的该文 件中填写相应过的值,如下:

master 的myid内容为1

slave1 的myid内容为2

slave2 的myid内容为3

image-20220930101604963.png

image-20220930101633330.png

image-20220930101700730.png

3、启动ZooKeeper集群

分别在三个节点进入bin目录,启动ZooKeeper服务进程:

cd /usr/cstor/zookeeper/bin
./zkServer.sh start

image-20220930101912953.png

image-20220930101947686.png

image-20220930102024364.png

在各机器上依次执行脚本,查看ZooKeeper状态信息,两个节点是follower状态,一个节点是leader状态:

./zkServer.sh status

image-20220930102109925.png

image-20220930102749203.png

在其中一台机器上执行客户端脚本:

./zkCli.sh -server master:2181,slave1:2181,slave2:2181

image-20220930102850757.png

在客户端shell下执行创建目录命令:

create /testZk ""

然后再向/testZk目录写数据:

set /testZk 'aaa'

然后再读取/testZk目录数据:

get /testZk

最后删除/testZk目录并退出客户端:

rmr /testZk
quit

image-20220930103209965.png

4、查看java进程和ZooKeeper集群目录

查看java进程:

  • master:
    image-20220930103533402.png
  • slave1:
    image-20220930103601521.png
  • slave2:
    image-20220930103624004.png

查看ZooKeeper集群目录:

image-20220930103808199.png

五、最后我想说

本期有关ZooKeeper部署的实验就结束了,后续就会开始学习HBase,HBase中也会用到ZooKeeper,所以大家可以多多练习如何成功部署并启动Zookeeper。

目录
相关文章
|
1月前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
234 4
|
2月前
|
存储 分布式计算 Hadoop
Hadoop框架解析:大数据处理的核心技术
组件是对数据和方法的封装,从用户角度看是实现特定功能的独立黑盒子,能够有效完成任务。组件,也常被称作封装体,是对数据和方法的简洁封装形式。从用户的角度来看,它就像是一个实现了特定功能的黑盒子,具备输入和输出接口,能够独立完成某些任务。
|
3月前
|
资源调度 安全 Java
Java 大数据在智能教育在线实验室设备管理与实验资源优化配置中的应用实践
本文探讨Java大数据技术在智能教育在线实验室设备管理与资源优化中的应用。通过统一接入异构设备、构建四层实时处理管道及安全防护双体系,显著提升设备利用率与实验效率。某“双一流”高校实践显示,设备利用率从41%升至89%,等待时间缩短78%。该方案降低管理成本,为教育数字化转型提供技术支持。
96 1
|
1月前
|
SQL 分布式计算 大数据
我与ODPS的十年技术共生之路
ODPS十年相伴,从初识的分布式计算到共生进化,突破架构边界,推动数据价值深挖。其湖仓一体、隐私计算与Serverless能力,助力企业降本增效,赋能政务与商业场景,成为数字化转型的“数字神经系统”。
|
2月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
2月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
2月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1