大数据之Zookeeper部署

文章目录

    • 集群规划
    • 环境准备
    • 集群部署
    • 参考资料

在这里插入图片描述

集群规划

  • 确定使用Hadoop101、hadoop102和hadoop103三台服务器来构建Zookeeper集群。
hadoop101hadoop102hadoop103
zookeeperzookeeperzookeeper

环境准备

安装zookeeper前需要确保下面的环境配置成功,具体可以参考大数据之Hadoop部署。

  • 准备三台服务器, 确保都已经安装了CentOS 7.9操作系统
  • 使得三台服务器之间可以互相ping通
  • 修改主机名为 hadoop101, hadoop102, hadoop103
  • 配置hosts文件, 增加主机名和 IP 地址的映射
  • 创建用户并配置用户权限
  • 关闭防火墙
  • ssh 免密登录
  • 安装 JDK,配置环境变量等

集群部署

注意:确保在执行这些步骤之前,确保环境准备完成。 bigdata用户在所有服务器上都有执行权限,SSH免密码登录已经配置好,以便可以无障碍地在服务器之间进行操作。

  1. 安装Zookeeper

    • 在每台服务器上使用bigdata用户登录。
    • 下载Zookeeper的安装包apache-zookeeper-3.5.7-bin.tar.gz /opt/software/目录。
      # 切换到/opt/software目录
      cd /opt/software
      # 下载安装包
      wget https://mirrors.huaweicloud.com/apache/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 
      
    • 将安装包解压到hadoop101服务器的/opt/module/目录下:
      tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
      
    • 创建软连接命名为zookeeper
      ln -s  apache-zookeeper-3.5.7-bin  zookeeper
      
    • 使用rsync命令将文件和软连接同步到hadoop102hadoop103
      # 同步到hadoop102
      rsync -av /opt/module/apache-zookeeper-3.5.7-bin  hadoop102:/opt/module/
      rsync -av /opt/module/zookeeper  hadoop102:/opt/module/
      # 同步到hadoop103
      rsync -av  /opt/module/apache-zookeeper-3.5.7-bin  hadoop103:/opt/module/
      rsync -av  /opt/module/zookeeper  hadoop103:/opt/module/
      
  2. 配置zoo.cfg文件

    • 在Hadoop101上编辑zoo.cfg文件,设置数据存储路径和集群配置:

      cp zoo_sample.cfg zoo.cfg
      vim zoo.cfg
      
    • 配置内容如下:

      • 修改数据存储路径为
        dataDir=/opt/module/zookeeper/zkData
        
      • 增加集群配置信息
        server.1=hadoop101:2888:3888
        server.2=hadoop102:2888:3888
        server.3=hadoop103:2888:3888
        
    • 配置文件解读
      在Zookeeper的配置文件zoo.cfg中,server.A=B:C:D的配置参数是用来定义集群中各个服务器的角色和通信信息的。下面是对这些参数的详细解读:

      • A: 这是一个数字,表示服务器在Zookeeper集群中的标识符。每个服务器都有一个唯一的标识符,用于区分不同的服务器。

      • B: 这是服务器的地址,可以是IP地址或主机名。这个地址用于Zookeeper集群内部的通信。

      • C: 这是服务器与集群中的Leader服务器交换信息时使用的端口。在Zookeeper中,所有的Follower和Observer节点都会通过这个端口与Leader节点通信,以获取最新的状态和数据。

      • D: 这是用于Leader选举的端口。如果当前的Leader服务器失败,集群中的其他服务器会通过这个端口进行通信,以选举出一个新的Leader。这个端口仅在选举过程中使用。

      • myid: 在Zookeeper集群模式下,每个服务器都需要有一个唯一的标识符,这个标识符存储在一个名为myid的文件中。该文件位于dataDir目录下,其内容就是A的值。Zookeeper启动时会读取这个文件,以确定当前服务器在集群中的身份。

      • dataDir: 这是Zookeeper的数据目录,用于存储Zookeeper的数据和事务日志。myid文件就存放在这个目录下。

      这些配置参数共同定义了Zookeeper集群的行为和通信方式,确保了集群的稳定性和可靠性。在配置Zookeeper集群时,需要根据实际的网络环境和需求来设置这些参数。

    • 使用scp命令将配置好的zoo.cfg文件同步到hadoop102和hadoop103:

      scp /opt/module/zookeeper/conf/zoo.cfg bigdata@hadoop102:/opt/module/zookeeper/conf/
      scp /opt/module/zookeeper/conf/zoo.cfg bigdata@hadoop103:/opt/module/zookeeper/conf/
      
  3. 配置服务器编号

    • 在每台服务器的Zookeeper安装目录下创建zkData目录:
      mkdir -p /opt/module/zookeeper/zkData
      
    • 在每个zkData目录下创建一个名为myid的文件,并写入与server相应的服务器编号:
      # hadoop101
      echo "1" > myid
      # hadoop102
      echo "2" > myid
      # hadoop103
      echo "3" > myid
      
  4. 启动Zookeeper服务

    • 每台服务器上启动Zookeeper:
      [bigdata@Hadoop101 zookeeper]$ bin/zkServer.sh start
      [bigdata@hadoop102 zookeeper]$ bin/zkServer.sh start
      [bigdata@hadoop103 zookeeper]$ bin/zkServer.sh start
      
    • 检查每台服务器上的Zookeeper状态以确认是否成功启动:
      [bigdata@Hadoop101 zookeeper]$ bin/zkServer.sh status
      [bigdata@hadoop102 zookeeper]$ bin/zkServer.sh status
      [bigdata@hadoop103 zookeeper]$ bin/zkServer.sh status
      
  5. 创建集群操作脚本

    • 在Hadoop101目录/home/bigdata/bin上创建一个脚本zookeeper_manage.sh以简化集群的启动、停止和状态检查:

      vim zookeeper_manage.sh
      
    • 脚本内容如下:

      #!/bin/bash# 定义log函数,用于打印不同级别的日志信息
      function log() {local level="$1"local message="$2"case "$level" inERROR)echo -e "\033[31m[ERROR] $message\033[0m";;WARN)echo -e "\033[33m[WARN] $message\033[0m"  # 黄色;;INFO)echo -e "\033[32m[INFO] $message\033[0m"   # 绿色;;*)echo "$message";;esac
      }# 定义主机数组
      hosts=("hadoop101" "hadoop102" "hadoop103")# 根据脚本的第一个参数执行不同的操作
      case $1 instart)for host in "${hosts[@]}"dolog INFO "Starting zookeeper on $host"ssh "$host" "/opt/module/zookeeper/bin/zkServer.sh start" || log ERROR "Failed to start zookeeper on $host"done;;stop)for host in "${hosts[@]}"dolog INFO "Stopping zookeeper on $host"ssh "$host" "/opt/module/zookeeper/bin/zkServer.sh stop" || log ERROR "Failed to stop zookeeper on $host"done;;status)for host in "${hosts[@]}"dolog INFO "Checking zookeeper status on $host"ssh "$host" "/opt/module/zookeeper/bin/zkServer.sh status"# 检查ssh命令的退出状态,并在必要时记录错误if [ $? -ne 0 ]; thenlog ERROR "Failed to check zookeeper status on $host"fidone;;*)log ERROR "Invalid command: $1";;
      esac
      
    • 使用脚本启动、停止或检查集群状态:

      ./zookeeper_manage.sh start
      ./zookeeper_manage.sh stop
      ./zookeeper_manage.sh status
      
  6. 客户端命令行操作

    • 在任一服务器上使用bigdata用户启动Zookeeper客户端,并通过命令行与Zookeeper集群交互:

       bin/zkCli.sh
      
    • 使用客户端命令,例如lscreategetsetstatdelete等,来操作Zookeeper。

      命令功能描述参数选项及说明
      help显示所有可用的Zookeeper命令。-
      ls path列出指定路径下的子节点。-w: 监听子节点的变化。
      -s: 附加次级信息。
      create创建一个新的节点。-s: 创建含有序列的节点。
      -e: 创建临时节点。
      get path获取指定路径节点的值。-w: 监听节点内容的变化。
      -s: 附加次级信息。
      set设置或更新指定节点的值。-
      stat查看指定节点的状态,包括版本号等。-
      delete删除指定的节点。-
      deleteall递归删除指定路径下的所有节点。-

参考资料

大数据之Hadoop部署

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

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

相关文章

AI智能剪辑发展到哪种地步?来看看云微客就知道了!

不是短视频团队招不起,而是矩阵账号更有性价比。企业做短视频有反思过为什么干不过同行吗?我们来看看大佬是怎么做的。云微客AI智能剪辑系统用几百个账号做矩阵布局,系统每天自动进行批量剪视频、写文案、一键自动化发布视频,一个…

[漏洞复现] MetInfo5.0.4文件包含漏洞

[漏洞复现] MetInfo5.0.4文件包含漏洞 MetInfo5.0.4 漏洞代码审计 漏洞出现在about/index.php中,因为利用了动态地址,所以存在漏洞。 漏洞检查语句(!192.168.109.100是我的服务器ip,需要换成自己的)&…

华为仓颉语言体验:一个简单的socket服务端实现

前言 由于仓颉目前是内测状态, 不能展示仓颉的详细信息,但是华为仓颉官网的公共文档的内容是可以公开的。 我相信有不少喜欢编程的朋友都申请了内测,但是一些编程初学者应该和我一样,处于摸索阶段。所以,我这里把我测…

中电金信:金Gien乐道 | 6月热门新闻盘点 回顾这一月的焦点事件

“以检之力 e企守护”——上海市检一分院与中电金信开展联学联建 6月24日,上海市人民检察院第一分院与中电金信数字科技集团股份有限公司联合开展“以检之力 e企守护”联学联建活动。双方共同参观了全国检察机关证券期货犯罪办案基地和重大职务犯罪案件办理&#xf…

python(6)numpy的使用详细讲解

在numpy中,最基本的数据结构是数组,因此我们首先需要了解如何创建一个数组。numpy提供了多种数组创建方法,包括从列表或元组创建、从文件中读取数据、使用特定函数创建等。下面是一些常用的创建方法: 一、创建数组 1. 从列表或元…

【MySQL备份】Percona XtraBackup基础篇

目录 1.关于Percona XtraBackup 2. Percona XtraBackup有哪些特点? 3.安装Percona XtraBackup 3.1.环境信息 3.2.安装步骤 4. xtrabackup内部流程图 5.Percona XtraBackup基础语法 5.1.全量备份 5.2.增量备份 5.2.1.基于全量备份的增量备份 5.2.2.基于前…

[leetcode]max-consecutive-ones 最大连续1的个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int maxCount 0, count 0;int n nums.size();for (int i 0; i < n; i) {if (nums[i] 1) {count;maxCount max(maxCount, count);} else…

安装和微调大模型(基于LLaMA-Factory)

打开终端&#xff08;在Unix或macOS上&#xff09;或命令提示符/Anaconda Prompt&#xff08;在Windows上&#xff09;。 创建一个名为lora的虚拟环境并指定Python版本为3.9。 conda create --name lora python3.9激活新创建的虚拟环境。 conda activate lora克隆项目。 git …

详解COB显示屏的技术特点

COB&#xff08;Chip on Board&#xff09;显示屏作为一种采用倒装COB封装技术的LED显示屏&#xff0c;在显示效果以及使用稳定性跟防护性方面&#xff0c;拥有更大优势&#xff0c;今天跟随COB显示屏厂家中品瑞科技一起来看看&#xff0c;COB显示屏的技术特点&#xff1a; 1、…

如何在OpenEuler 上快速部署一套Zabbix7.0监控系统

如何在OpenEuler 上快速部署一套Zabbix监控系统 一、环境信息 用途机器IP操作系统备注zabbix-server172.22.33.180openeuler 22.03 LTS SP37.0 LTS 版本&#xff0c;容器部署zabbix-agent172.16.10.182openeuler 22.03 LTS SP37.0 源码编译部署 二、Docker 部署 2.1 二进制…

Anti-Canine Heartworm Antibody (Chicken) - HRP Conjugated

犬心丝虫&#xff08;学名Dirofilaria immitis&#xff09;是一种寄生丝虫&#xff0c;通过蚊子叮咬而传播。感染犬在早期阶段&#xff0c;大多不会出现症状。随着病情发展&#xff0c;将出现咳嗽、呼吸困难等症状&#xff0c;并伴有右心功能衰竭&#xff0c;最终全身衰弱或虚脱…

检索增强生成RAG系列3--RAG优化之文档处理

在上一章中罗列了对RAG准确度的几个重要关键点&#xff0c;主要包括2方面&#xff0c;这一章就针对其中一方面&#xff0c;来做详细的讲解以及其解决方案。 目录 1 文档解析1.1 文档解析工具1.2 实战经验1.3 代码演示 2 文档分块2.1 分块算法2.2 实战经验2.3 代码演示 3 文档e…

python自动化办公之shutil

目录 1复制文件&#xff0c;此时存在2份相同文件 2移动文件&#xff0c;此时仅有1份文件 3删除文件&#xff0c;此时0份文件 用到的库&#xff1a;shutil&#xff0c;os 实现的效果&#xff1a;复制文件&#xff0c;移动文件&#xff0c;删除文件 代码&#xff1a; 1复制…

使用Colly库进行高效的网络爬虫开发

引言 随着互联网技术的飞速发展&#xff0c;网络数据已成为信息获取的重要来源。网络爬虫作为自动获取网页内容的工具&#xff0c;在数据分析、市场研究、信息聚合等领域发挥着重要作用。本文将介绍如何使用Go语言中的Colly库来开发高效的网络爬虫。 什么是Colly库&#xff1…

超声波清洗机怎么选?极力推荐四款口碑大牌超声波清洗机

相信大家都知道超声波清洗机&#xff0c;每次眼镜脏的时候&#xff0c;去眼镜店里让老板帮忙清洗&#xff0c;她们用的就是超声波清洗机&#xff0c;通过超声波的原理深入物品深处清洁&#xff0c;清洁效果非常好。相对手洗的方式&#xff0c;超声波清洗机能够保护镜片在清洗过…

【开放词汇分割】Side Adapter Network for Open-Vocabulary Semantic Segmentation

论文链接&#xff1a;Side Adapter Network for Open-Vocabulary Semantic Segmentation 代码链接&#xff1a;https://github.com/MendelXu/SAN 作者&#xff1a;Mengde Xu,Zheng Zhang,Fangyun Wei,Han Hu,Xiang Bai 发表单位&#xff1a;华中科技大学、微软亚洲研究院 会…

Vue 快速入门案例

步骤一&#xff1a;引入vue.js文件 添加<script>标签并标明路径 步骤二&#xff1a;定义Vue对象 el Vue接管区域 data 定义数据模型 步骤三&#xff1a;编写视图层的展示 v-model 绑定数据模型 {{要展示的数据模型}} 运行效果 总结 文本框里的值&a…

雪花算法的原理以及实现

文章目录 一、简介二、算法优缺点三、算法实现 一、简介 有这么一种说法&#xff0c;自然界中并不存在两片完全一样的雪花的。每一片雪花都拥有自己漂亮独特的形状、独一无二。雪花算法也表示生成的ID如雪花般独一无二。 雪花算法 &#xff08;SnowFlake &#xff09;算法&am…

几度互联网站群管理系统全媒体解决方案

随着高考的结束&#xff0c;各高校开启了紧张的招生宣传工作&#xff0c;几度互联网站群系统助力各高校招生宣传。 学校官方网站是互联网时代学校对外交流的重要途径和信息公开的主要载体&#xff0c;是展示学校形象、密切联系师生的重要窗口&#xff0c;是加强校园宣传思想工…

【MySQL备份】Percona XtraBackup篇

目录 1.关于Percona XtraBackup 2. Percona XtraBackup有哪些特点&#xff1f; 3.安装Percona XtraBackup 3.1.环境信息 3.2.安装步骤 4.实战演练 4.1.全量备份与恢复 4.2.总结 1.关于Percona XtraBackup Percona XtraBackup是世界上唯一的开源、免费的MySQL热备份 为…