大数据——Zookeeper安装、启动、操作命令(一)

Zookeeper

概述

  1. Zookeeper本身是Apache提供的一套开源的用于进行分布式管理和协调的机制/框架。官网:https://zookeeper.apache.org
  2. Zookeeper本身提供了中心化服务,包含统一配置、统一命名、分布式锁服务、分布式组服务,更多的时候,Zookeeper充当了一个注册中心来使用
  3. Zookeeper是Yahoo!仿照了Google的<The Chubby Lock Service>开发的后来贡献给了Apache的一套框架

安装

概述

  1. 在大数据中,几乎所有的框架,它的安装都提供了三种模式
    1. 单机模式:在一台服务器上安装,往往能够启动这个框架的部分服务
    2. 伪分布式:在一台服务器上安装,但是利用多个线程模式分布式环境,能够启动这个框架的大部分甚至于服务
    3. 分布式:在集群上安装,能够启动这个框架的所有服务
  2. 现阶段,先安装单机模式,搞定所有的概念之后,再到集群中安装

安装JDK

  1. Centos7中可能自带了OpenJDK,需要卸载移除掉

    rpm -qa | grep -i jdk | xargs rpm -ev --nodeps
    
  2. 上课的时候要求,所有的软件安装包放在/opt/presoftware下,将软件安装在/opt/software

    cd /opt
    mkdir presoftware
    mkdir software
    
  3. 进入presoftware下,将JDK安装包上传到这个目录下

    cd presoftware
    # 将安装包上传到这个路径下
    rz
    
  4. 解压到software目录下

    tar -xvf jdk-8u371-linux-x64.tar.gz -C /opt/software/
    
  5. 进入software目录下

    cd /opt/software/
    # 重命名
    mv jdk1.8.0_371/ jdk1.8
    
  6. 在Linux中, 环境变量的配置有两个位置:/etc/profile~/.bashrc。无论哪一个路径,默认都会扫描/etc/profile.d目录下的脚本文件,所以,配置环境变量一般是放在/etc/profile.d

    # 需要在/etc/profile.d来脚本文件
    touch /etc/profile.d/javahome.sh
    # 编辑脚本文件
    vim /etc/profile.d/javahome.sh
    # 在文件中添加
    export JAVA_HOME=/opt/software/jdk1.8
    export PATH=$PATH:$JAVA_HOME/bin
    # 保存退出,生效
    source /etc/profile.d/javahome.sh
    # 测试
    javac -version
    # 或者
    java -version
    

安装Zookeeper(单机模式)

  1. 将安装包上传到Linux上

    cd /opt/presoftware/
    rz
    
  2. 解压

    tar -xvf apache-zookeeper-3.9.1-bin.tar.gz -C /opt/software/
    
  3. 重命名

    cd /opt/software/
    mv apache-zookeeper-3.9.1-bin/ zookeeper-3.9.1
    
  4. 配置环境变量

    # 编辑文件
    vim /etc/profile.d/zookeeperhome.sh
    # 在文件中添加
    export ZOOKEEPER_HOME=/opt/software/zookeeper-3.9.1
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    # 保存退出,生效
    source /etc/profile.d/zookeeperhome.sh
    
  5. 配置Zookeeper

    1. 进入Zookeeper的配置目录

      cd /opt/software/zookeeper-3.9.1/conf
      
    2. 修改配置

      # 复制文件 - 注意:Zookeeper启动的时候默认会使用zoo.cfg中的配置
      cp zoo_sample.cfg zoo.cfg
      # 编辑文件
      vim zoo.cfg
      # 修改dataDir属性的值
      dataDir=/opt/software/zookeeper-3.9.1/data
      
    3. 启动Zookeeper

      zkServer.sh start
      
    4. 检查Zookeeper的状态

      # 方式一:
      jps
      # 如果有QuorumPeerMain,那么表示Zookeeper在运行
      # 方式二:
      zkServer.sh status
      
    5. 进入Zookeeper的客户端

      zkCli.sh
      

技术点

特点

  1. Zookeeper默认对外提供的客户端端口号是2181,可以通过zoo.cfg中的clientPort属性来修改,但是不建议
  2. Zookeeper本身是一个树状结构,根节点是/
  3. 不同于Linux的地方在于,Zookeeper中没有相对路径的说法,所有节点路径都必须从根节点开始计算
  4. 当Zookeeper启动的时候,自动的添加一个节点/zookeeper,存放的是Zookeeper本身的集群信息
  5. 在Zookeeper3.7及以前的版本中,要求每一个节点在创建的时候必须携带数据,这个数据可以是对节点的描述或者是配置信息
  6. 每一个节点携带的数据默认是在内存以及磁盘上
    1. 维系在内存的目的是为了读写快
    2. 维系在磁盘的目的是为了持久化
  7. 数据在磁盘上的存储路径默认由dataLogDir属性来控制,默认情况下,如果没有单独指定,dataLogDir的属性值和dataDir是一致的
  8. 临时节点下不能挂载子节点!
  9. Zookeeper会为每一次的写操作分配一个全局递增的编号,这个编号称之为事务id,简写为Zxid。一个节点刚被创建的时候,三个事务id是一致的

操作命令

命令解释
ls /查看跟节点的子节点
create /big在根节点下创建子节点big - 这种创建方式是从Zookeeper的3.8版本开始的
create /test 'this is a test server'在根节点下创建test节点,并且携带数据
create /data ''创建节点,并且给定数据为空
get /big获取节点的数据
set /video 'size=500M'修改数据
delete /test删除节点,要求节点为空(不能有子节点)
rmr /video删除这个节点及子节点,从Zookeeper3.8开始,这个命令就过时
deleteall /video删除这个节点及子节点,从Zookeeper3.8开始建议使用的命令
ls -w /监控指定节点的子节点的个数变化 - 只监控一次
get -w /news监控指定节点的数据是否变化 - 只监控一次
removewatches /news移除监控
history查看执行过的指令
redo 24重新执行编号为24的命令
close关闭连接,但是没有退出Zookeeper客户端
quit直接退出客户端,需要通过zkCli.sh重新进入
connect localhost:2181连接本机的2181端口
getAllChildrenNumber /获取根节点以及所有子节点的数量
setquota -n 2 /news/news节点下的子节点个数最好不要超过2个
setquota -b 1024 /news/news节点的数据最好不要超过1024B
listquota /news获取/news节点上的限制
delquota /news删除/news节点上的限制
version查看Zookeeper的版本
whoami查看当前的用户
sync /将根目录下的数据同步给其他的follower
getEphemerals /获取根节点的临时节点
create -e /big ''创建临时节点
create -s /test/t ''创建持久顺序节点
create -e -s /test/t ''创建临时顺序节点
stat /news查看节点的属性/信息

节点类型

节点解释
Persistent持久节点
Ephemeral临时节点
Persistent_Sequential持久顺序节点
Ephemeral_Sequential临时顺序节点

节点信息/属性

属性/信息解释
cZxid这个节点创建对应的事务id,整个过程中第几个写操作创建了这个节点
ctime这个节点创建对应的时间
mZxid这个节点的数据修改对应的事务id,整个过程中第几个写操作修改了数据
mtime这个节点的数据修改对应的时间
pZxid这个节点的子节点个数变化对应的事务id,整个过程中第几个写操作导致这个节点的子节点个数产生了变化
cversion这个节点的子节点个数变化了几次
dataVersion这个节点的数据被修改了几次 - 数据版本
aclVersion这个节点的权限被修改了几次
ephemeralOwner如果是持久节点,此项值为0x0;如果是临时节点,此项值为当前的会话编号(sessionid)
dataLength数据的长度(字节个数)
numChildren子节点个数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

世强硬创获昕感科技授权代理,SiC MOSFET实现超低导通电阻

近日&#xff0c;世强先进&#xff08;深圳&#xff09;科技股份有限公司&#xff08;下称“世强先进”&#xff09;获北京昕感科技有限责任公司&#xff08;下称“昕感科技”&#xff0c;英文名&#xff1a;NEXIC&#xff09;授权代理&#xff0c;为光伏、储能、电网、新能源汽…

耀斑层-如何在Unity中实现耀斑亮光效果

在Unity中实现耀斑亮光效果可以通过以下步骤来实现&#xff1a; 创建一个空物体作为光源&#xff1a;在场景中创建一个空物体&#xff0c;并将其放置在需要发出耀斑亮光效果的位置上。 添加光源组件&#xff1a;选中空物体&#xff0c;在Inspector面板中点击"Add Compone…

leetcode152 乘积最大子数组

给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续 子数组 &#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums [2,3,-2,4] 输出: 6 解释: 子数组 …

C# 给图片添加文字水印

目录 应用场景 开发运行环境 方法说明 方法代码 调用示例 小结 应用场景 在某些应用项目&#xff08;如电子档案信息管理&#xff09;中&#xff0c;查看电子图片信息是经常使用到的功能&#xff0c;此时我们就需要给显示在浏览器中的图片添加文字水印版权或提示信息。…

石家庄学院2023年大学生程序设计大赛题解

A、大臣的旅费 floyd求最短路径 #include <iostream>using namespace std;int d[1005][1005]; int n; int res;int f(int x) {// 等差数列return ((11 x 10) * x) / 2; }void init() {for (int i 1; i < n; i) {for (int j 1; j < n; j) {if (i j) d[i][j] …

Golang对接Ldap(保姆级教程:概念搭建实战)

Golang对接Ldap&#xff08;保姆级教程&#xff1a;概念&搭建&实战&#xff09; 最近项目需要对接客户的LDAP服务&#xff0c;于是趁机好好了解了一下。LDAP实际是一个协议&#xff0c;对应的实现&#xff0c;大家可以理解为一个轻量级数据库。用户查询。比如&#xff…

各种类型游戏的乐趣与魅力

游戏已经成为人们生活中不可或缺的一部分。从家庭娱乐到专业电竞&#xff0c;游戏行业呈现出多姿多彩的景象&#xff0c;吸引着亿万玩家的目光。而游戏的多样性正是其中一大魅力所在。让我们一起探索各种类型游戏的乐趣与魅力吧&#xff01; 动作游戏&#xff1a; 动作游戏以快…

力扣HOT100 - 114. 二叉树展开为链表

解题思路&#xff1a; class Solution {List<TreeNode> list new ArrayList<>();public void flatten(TreeNode root) {recur(root);for (int i 1; i < list.size(); i) {TreeNode pre list.get(i - 1);TreeNode cur list.get(i);pre.left null;pre.right…

使用Shell终端访问Linux

一、实验目的 1、熟悉Linux文件系统访问命令&#xff1b; 2、熟悉常用 Linux Shell的命令&#xff1b; 3、熟悉在Linux文件系统中vi编辑器的使用&#xff1b; 4、进一步熟悉虚拟机网络连接模式与参数配置&#xff01; 二、实验内容 1、使用root帐号登陆到Linux的X-windows…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Combo Box的使用及说明 文章编号&#xff…

【Qt 学习笔记】Qt常用控件 | 显示类控件 | LCD Number的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件 | LCD Number的使用及说明 文章编号&#xf…

梳理 Pytorch 19个方面,70个核心操作全总结!

最新写了很多关于 Pytorch 的文章&#xff0c;喜欢可以从0开始学习&#xff1a; 小白学 PyTorch 系列&#xff1a;这一次&#xff0c;我准备了 20节 PyTorch 中文课程小白学 PyTorch 系列&#xff1a;54个超强 pytorch 操作小白学 PyTorch 系列&#xff1a;9个技巧让你的 PyTo…

wps屏幕录制怎么用?分享使用方法!

数字化时代&#xff0c;屏幕录制已成为我们学习、工作和娱乐中不可或缺的一部分。无论是制作教学视频、分享游戏过程&#xff0c;还是录制网络会议&#xff0c;屏幕录制都能帮助我们轻松实现。WPS作为一款功能强大的办公软件&#xff0c;其屏幕录制功能也备受用户青睐。本文将详…

代码随想录:二叉树15-17

目录 404.左叶子之和 题目 代码&#xff08;后序递归&#xff09; 代码&#xff08;前序迭代&#xff09; 513.找树左下角的值 题目 代码&#xff08;层序迭代&#xff09; 112.路径总和 题目 代码&#xff08;前序迭代&#xff09; 112.路径总和II 题目 代码&…

记录如何用php将多个字符替换成同一个字符

在PHP中&#xff0c;如果你想要将多个不同的字符替换成同一个字符&#xff0c;可以使用str_replace()函数。这个函数可以接收一个包含需要被替换的字符的数组&#xff0c;以及一个表示替换目标的字符串。 以下是使用str_replace()进行多字符替换的基本示例&#xff1a; $text…

Linux读写文件

前言 学习了文件系统&#xff0c;就能理解为什么说Linux下一切皆文件。 语言层面的操作 在c语言的学习中我们可以使用fopen()函数对文件进行操作。 int main() {//FILE * fp fopen("./log.txt", "w");//FILE * fp fopen("./log.txt", "…

TablePlus for Mac/Win:开启高效数据开发新纪元

在当今数字化时代&#xff0c;数据的重要性日益凸显。无论是企业还是个人&#xff0c;都需要一款强大而实用的本地原生数据开发软件来提升工作效率。而 TablePlus for Mac/Win 正是这样一款卓越的工具&#xff0c;它为用户带来了全新的体验&#xff0c;让数据开发变得更加轻松、…

第1次作业

目录 重点内容提要一、误差度量二、浮点数系统三、误差传播四、数值稳定性 作业解析 重点内容提要 一、误差度量 二、浮点数系统 三、误差传播 四、数值稳定性 作业解析

快速部署 Garnet

快速部署 Garnet Garnet 是 Microsoft Research 推出的一种新型远程缓存存储&#xff0c;其设计速度极快、可扩展且延迟低。 Garnet 在单个节点内是线程可扩展的。它还支持分片集群执行、复制、检查点、故障转移和事务。它可以在主内存以及分层存储&#xff08;例如 SSD 和 Az…

2024/4/25 红外遥控代码

51完结撒花&#xff01;&#xff01;&#xff01; 这块如果IR听不懂可以看看那个状态机的相关视频。 Int0.c #include <REGX52.H>void Int0_Init(void) {IT01;IE00;EX01;EA1;PX01; }//void Int0_Routine(void) interrupt 0 //{ // Num; //} Timer0.c #include …