Hadoop 之 Centos 7 搭建 Zookeeper 3.8.2 集群(六)

Zookeeper 集群搭建

  • 一.Centos 虚拟机配置
    • 1.新建虚拟机,选择【典型】
    • 2.下一步,【稍后安装操作系统】
    • 3.下一步,选择【Linux】【Centos7 64位】
    • 4.下一步,设置虚拟机名称和安装目录
    • 5.下一步,默认
    • 6.下一步,【自定义硬件配置】选择下载的镜像
    • 7.完成,启动虚拟机
    • 8.登录并绑定网卡设置地址
  • 二.Zookeeper 配置
    • 1.Zookeeper 下载
    • 2.单机配置
    • 3.集群配置

一.Centos 虚拟机配置

阿里云镜像站

VmWare 安装 Centos 7

1.新建虚拟机,选择【典型】

在这里插入图片描述

2.下一步,【稍后安装操作系统】

在这里插入图片描述

3.下一步,选择【Linux】【Centos7 64位】

在这里插入图片描述

4.下一步,设置虚拟机名称和安装目录

在这里插入图片描述

5.下一步,默认

在这里插入图片描述

6.下一步,【自定义硬件配置】选择下载的镜像

在这里插入图片描述
在这里插入图片描述

7.完成,启动虚拟机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自动分区

在这里插入图片描述
在这里插入图片描述

开始安装

在这里插入图片描述

设置用户名密码

在这里插入图片描述

在这里插入图片描述

重启系统

在这里插入图片描述

8.登录并绑定网卡设置地址

## 修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
## 增加以下配置
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
## 删除 dhcp : BOOTPROTO=dhcp 并重启系统

在这里插入图片描述

二.Zookeeper 配置

1.Zookeeper 下载

Apache Zookeeper 下载

在这里插入图片描述

2.单机配置

## 1.解压缩 zookeeper
tar zxvf apache-zookeeper-3.8.2-bin.tar.gz
## 2.移动位置
mv apache-zookeeper-3.8.2-bin /usr/local/zookeeper
## 3.解压缩 jdk
tar zxvf jdk-11.0.19_linux-x64_bin.tar.gz
## 4.移动位置
mv jdk-11.0.19 /usr/local/java
## 5.配置环境变量
echo 'export JAVA_HOME=/usr/local/java' >> /etc/profile
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> /etc/profile
echo 'export PATH=${JAVA_HOME}/bin:${ZOOKEEPER_HOME}/bin:${PATH}' >> /etc/profile
## 6.刷新环境变量
source /etc/profile
## 7.复制配置
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
## 8.单机启动
zkServer.sh start

在这里插入图片描述

## 1.停止服务
zkServer.sh stop

在这里插入图片描述

3.集群配置

地址分配如下:

节点地址Host
192.168.1.100zk1
192.168.1.101zk2
192.168.1.102zk3

zoo.cfg 配置说明

配置项默认值含义
tickTime2000通信心跳
initLimit10Leader 和 Follower 初始化容忍最多心跳书
syncLimit5Leader 和 Follower 同步超时时间,超过此心跳数则剔除 Follower
dataDir/tmp/zookeeper数据目录
clientPort2181客户端端口
server.A=B:C:DA 服务器序号
B 本机地址
C Leader 和 Follower 通信端口
D 选举通信端口
## 分别设置集群内虚拟机域名(查看域名:hostname)
hostnamectl set-hostname zk1
hostnamectl set-hostname zk2
hostnamectl set-hostname zk3
## 分别设置集群内虚拟机域名解析
echo '192.168.1.100 zk1' >> /etc/hosts
echo '192.168.1.101 zk2' >> /etc/hosts
echo '192.168.1.102 zk3' >> /etc/hosts
## 创建数据目录并修改 zoo.cfe 配置的 dataDir 为新创建目录
mkdir -p $ZOOKEEPER_HOME/data
## 创建文件 myid 用于标识服务器序号
touch $ZOOKEEPER_HOME/data/myid
## 修改 zoo.cfg 配置,增加集群配置
echo 'server.1=zk1:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
echo 'server.2=zk2:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
echo 'server.3=zk3:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
## 分发当前配置和文件到 zk2 zk3
scp -r /usr/local/zookeeper root@zk2:/usr/local/
scp -r /usr/local/zookeeper root@zk3:/usr/local/
scp -r /usr/local/java root@zk2:/usr/local/
scp -r /usr/local/java root@zk3:/usr/local/
scp /etc/profile root@zk2:/etc/profile
scp /etc/profile root@zk3:/etc/profile
## 刷新 zk2 zk3 环境变量并分别设置服务 ID
source /etc/profile
echo 1 >> $ZOOKEEPER_HOME/data/myid
echo 2 >> $ZOOKEEPER_HOME/data/myid
echo 3 >> $ZOOKEEPER_HOME/data/myid

配置免密登录

## 修改 192.168.1.100 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk2
ssh-copy-id -i ~/.ssh/id_rsa root@zk3
## 修改 192.168.1.101 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk1
ssh-copy-id -i ~/.ssh/id_rsa root@zk3
## 修改 192.168.1.102 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk1
ssh-copy-id -i ~/.ssh/id_rsa root@zk2
## 分别配置本地登录
ssh-copy-id -i ~/.ssh/id_rsa root@localhost
## 1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
## 2.分别启动集群内 zookeeper 服务
zkServer.sh start && ssh root@zk2 "source /etc/profile && zkServer.sh start && exit" && ssh root@zk3 "source /etc/profile && zkServer.sh start && exit"
## 3.查看状态
zkServer.sh status
## 4.关闭
zkServer.sh stop && ssh root@zk2 "source /etc/profile && zkServer.sh stop && exit" && ssh root@zk3 "source /etc/profile && zkServer.sh stop && exit"

ZK1

在这里插入图片描述

ZK2

在这里插入图片描述

ZK3

在这里插入图片描述

停止

在这里插入图片描述

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

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

相关文章

计算机系统结构-多处理机

概念,多处理机指的是,多台含cpu的机器共享一个存储器。 (可以通过网络宽带,也可以通过线直连这个存储器。当然他们也可以有自己的私有存储器或者高速缓存) 几个cpu公用一个总线,没问题。但是如果十几个cpu…

elasticsearch查询操作(API方式)

说明&#xff1a;elasticsearch查询操作除了使用DSL语句的方式&#xff08;参考&#xff1a;http://t.csdn.cn/k7IGL&#xff09;&#xff0c;也可以使用API的方式。 准备 使用前需先导入依赖 <!--RestHighLevelClient依赖--><dependency><groupId>org.ela…

pytest中生成allure报告时,测试报告中统计的用例数不正确

【问题描述】&#xff1a;pytest中生成allure报告时&#xff0c;测试报告中统计的用例数不正确&#xff0c;用例数总是比实际用例数多 【问题定位】&#xff1a;因为生成index.html的allure报告&#xff0c;是根据临时的json文件生成的。每次运行时&#xff0c;没有删除旧的js…

PCB封装设计指导(十四)保存并产生device文件

PCB封装设计指导(十四)保存并产生PSM和device文件 封装命名完成之后,基本上封装的建立也接近结束,如果调网表使用的是第三方网表,还需要device文件才能调入。 但是PSM文件是不管第一方和第三方网表都是需要的,下面介绍如何产生这两个文件。 打开封装文件,如下图点击Fil…

openlayers系列:加载arcgis和geoserver在线离线切片

https://www.freesion.com/article/1751396517/ 1.背景 有个项目需要使用openlayer加载各种服务上发布的数据&#xff0c;坐标系也不同&#xff0c;我们都知道openalyer默认可以加载EPAG:3857,要加载4490的坐标系的数据需要重新定义一下&#xff0c;之后再加载。一想起要重新…

【C#】并行编程实战:使用 Visual Studio 调试任务

并行编程可以提高应用程序的性能&#xff0c;但是调试起来会更困难&#xff0c;这一点在之前的章节中我们已经有了很直观的感受。对于程序而言&#xff0c;保证程序的正确性和保证性能同样重要。 本章将介绍可以在 Visual Studio 中的调试工具&#xff08;包括 Thread 窗口、Ta…

Vue中TodoList案例_编辑

nextTick: MyItem.vue 加一个编辑按钮&#xff0c;input框&#xff1a;blur失去焦点时触发事件handleBlur&#xff0c;ref获取真实dom&#xff1a; <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…

服务器中了360后缀勒索病毒,360后缀勒索病毒介绍解密数据恢复

360后缀勒索病毒&#xff0c;是BeijingCrypt勒索家族中的一种勒索软件病毒&#xff0c;这种恶意软件一旦攻击了企业的服务器就会利用自身独特的加密技术来全盘扫描系统文件&#xff0c;并对用户的全部文件进行加密&#xff0c;并要求用户支付赎金以解锁文件。近期&#xff0c;我…

SystemVerilog 第2章:数据类型

在 Verilog中,初学者经常分不清reg和wire两者的区别。应该使用它们中哪一个来驱动端口?连接不同模块时又该如何做? Systemverilog对经典的reg数据类型进行了改进,使得它除了作为一个变量以外,还可以被连续赋值、门单元和模块所驱动。为了与寄存器类型相区别,这种改进的数据类…

Python封装:提升代码质量的秘诀

在面向对象编程&#xff08;OOP&#xff09;中&#xff0c;封装是一种将数据和操作数据的方法绑定在一起的机制&#xff0c;以隐藏内部实现的细节&#xff0c;使代码更简洁、更安全。在Python中&#xff0c;我们通过定义类来实现封装。在本文中&#xff0c;我们将介绍Python封装…

常微分方程建模R包ecode(一)——构建常微分方程系统

常微分方程在诸多研究领域中有着广泛应用&#xff0c;本文希望向大家介绍笔者于近期开发的R包ecode&#xff0c;该包采用简洁易懂的语法帮助大家在R环境中构建常微分方程&#xff0c;并便利地调用R图形接口&#xff0c;研究常微分方程系统的相速矢量场、平衡点、稳定点等解析性…

视频内存过大如何压缩变小?这个压缩方法了解一下

在日常生活中&#xff0c;不管是日常随手拍的视频还是在工作中遇到的视频文件&#xff0c;在编辑处理的时候&#xff0c;如果视频的内存过大&#xff0c;不仅会占用很大的内存&#xff0c;在传送的时候也会花费很长时间&#xff0c;这时候将视频给压缩一下就可以很好的解决这一…

Feign远程调用如何携带form url

这是一个需要携带参数在form url上的请求&#xff0c;正常调用方式是这样的 响应&#xff1a; 在Feign中&#xff0c;应该怎么调用呢?? 定义OpenFeignClient接口 FeignClient(value "client-service", url "http://127.0.0.1/api") public interface…

Unity游戏源码分享-3d机器人推箱子游戏

Unity游戏源码分享-3d机器人推箱子游戏 一个非常意思的3D游戏 工程地址&#xff1a;https://download.csdn.net/download/Highning0007/88098014

STM32CUBEMX配置 定时器中断 和 上升沿中断(实现检测1s以内的脉冲个数)

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子&#xff0c;使用STM32CUBEMX做了很多驱动&#x…

Redis简介、常用命令

目录 一、​​关系数据库​​与非关系型数据库概述 1.1 关系型数据库 1.2 非关系型数据库 二、关系数据库与非关系型数据库区别 2.1 数据存储方式不同 2.2 扩展方式不同 2.3 对事务性的支持不同 三、非关系型数据库产生背景 四、Redis简介 4.1 Redis的单线程模式 4.…

评论管理功能

后端 bp.get("/comment/list") def comment_list():comments CommentModel.query.order_by(CommentModel.create_time.desc()).all()comment_list []for comment in comments:comment_dict comment.to_dict()comment_list.append(comment_dict)return restful.ok…

网络超时导致namenode被kill的定位

交换机升级导致部分网络通信超时, 集群的namenode主从切换后,主namenode进程被杀死。 网络问题导致namenode与zk间的连接超时触发了hadoop集群的防脑裂机制而主动kill掉了超时的namenode进程。 日志分析发现zk和namenode之间的网络连接超时: 超时触发了namenode切换,并将超时…

ES6基础知识七:你是怎么理解ES6中 Generator的?使用场景?

一、介绍 Generator 函数是 ES6 提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 回顾下上文提到的解决异步的手段&#xff1a; 回调函数promise 那么&#xff0c;上文我们提到promsie已经是一种比较流行的解决异步方案&#xff0c;那么为什么还出现Gen…

Flutter中如何取消任务

前言 在开发过程中&#xff0c;取消需求是很常见的&#xff0c;但很容易被忽略。然而&#xff0c;取消需求的好处也很大。例如&#xff0c;在页面中会发送很多请求。如果页面被切走并处于不可见状态&#xff0c;就需要取消未完成的请求任务。如果未及时取消&#xff0c;则可能…