大数据---zookeeper集群搭建

news2024/11/26 3:11:27

zookeeper集群搭建

跳过安装jdk的方法就是找到安装jdk环境的虚拟机克隆
克隆之后的虚拟机根据台数直接修改ip地址,重新配置免密登录,确保每台机器能够互相连接,然后安装zookeeper


文章目录

  • zookeeper集群搭建
  • 前期工作
      • 服务器划分
      • 修改hostname
      • 设置集群中每台机器的/etc/hosts
      • 配置免密登录
      • 将本机的公钥拷贝到要免密登陆的目标机器
      • 测试免密登陆是否成功
      • 安装jdk
  • 部署zookeeper集群
      • 上传安装包
      • 编写 zkzutoinstall.sh
        • 修改权限
        • 运行
      • 进入/opt/soft/zk345/conf目录下
      • 将zookeeper发送到zk2 zk3
      • 查看myid
      • 将zk1 /etc/profile 发送给zk2 zk3
      • 运行
        • 查看jps
        • 查看状态
        • 关闭服务
  • 编写开启,查看状态,关闭脚本和查看jps脚本
    • zkop.sh
      • 修改zkop.sh权限
      • 运行
        • 开启
        • 查看状态
        • 关闭
    • showalljps.sh
      • 修改showalljps.sh权限
      • 运行


前期工作

这里以三台机器来搭建,搭建过程基本一致,以zk1的操作演示

服务器划分

服务器名称环境ip地址
zk1jdk192.168.95.161
zk2jdk192.168.95.162
zk3jdk192.168.95.163

ip地址配置之后,防火墙关闭并且能保证连接xshell和xftp

没有vim命令的可以使用
yum -y install vim

修改hostname

[root@localhost ~]# hostnamectl set-hostname zk1
[root@localhost ~]# bash
在这里插入图片描述
同理 修改第二台 zk2 第三台 zk3

设置集群中每台机器的/etc/hosts

[root@zk1 ~]# vim /etc/hosts
在这里插入图片描述
将hosts文件发送到另外两台机器上
[root@zk1 ~]# scp /etc/hosts root@zk2:/etc/
[root@zk1 ~]# scp /etc/hosts root@zk3:/etc/
在这里插入图片描述

配置免密登录

[root@zk1 ~]# ssh-keygen -t rsa -P ‘’
在这里插入图片描述zk2 zk3重复此步骤

将本机的公钥拷贝到要免密登陆的目标机器

[root@zk1 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@zk1
[root@zk1 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@zk2
[root@zk1 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@zk3
注意:需要输入密码
zk2 zk3重复此步骤

测试免密登陆是否成功

[root@zk1 .ssh]# ssh -p22 root@zk2
[root@zk1 .ssh]# ssh -p22 root@zk3
在这里插入图片描述
注意:登录之后需要退出
zk2 zk3重复此步骤 看是否成功

安装jdk

具体步骤可以查看: Hadoop安装教程(一)
也可以使用脚本安装:Hadoop安装jdk简易版
这里使用脚本安装
zk1 opt下有soft和install目录
将jdk安装包用xftp上传到install目录下
在这里插入图片描述
编写autoinstall.sh脚本

#! /bin/bash
echo 'auto install begining....'

#global var
jdk=true

if [ "$jdk" = true ];then
  echo 'jdk install set true'
  echo 'setup jdk 8'
  tar -zxf /opt/install/jdk-8u321-linux-x64.tar.gz -C /opt/soft/
  mv /opt/soft/jdk1.8.0_321 /opt/soft/jdk180
  sed -i '73a\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
  sed -i '73a\export CLASSPATH=.:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile
  sed -i '73a\export JAVA_HOME=/opt/soft/jdk180' /etc/profile
  sed -i '73a\#jdk' /etc/profile
  echo 'setup jdk 8 success!!!'
fi

修改autoinstall.sh脚本的权限
[root@zk1 opt]# chmod 777 autoinstall.sh
在这里插入图片描述
执行脚本文件
[root@zk1 opt]# ./autoinstall.sh
刷新配置文件
[root@zk1 opt]# source /etc/profile

在这里插入图片描述
将安装好的发送到zk2,zk3
[root@zk1 opt]# scp -r ./soft/jdk180/ root@zk2:/opt/soft/
[root@zk1 opt]# scp -r ./soft/jdk180/ root@zk3:/opt/soft/
注意:这里应该把 /etc/profile传给zk2,zk3,但后面还需要安装zookeeper 所以可以最后一起发送

部署zookeeper集群

上传安装包

zk1将zookeeper安装包上传到opt目录下install目录
在这里插入图片描述

编写 zkzutoinstall.sh

在opt目录下编写zkzutoinstall.sh脚本

#! /bin/bash
echo 'auto zookeeper install begining....'

#global var
zk=true

hostname=`hostname`

if [ "$zk" = true ];then
	echo 'zookeeper install set true'
    echo 'setup zookeeper-3.4.5-cdh5.14.2.tar.gz'
	tar -zxf /opt/install/zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/
	mv /opt/soft/zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk345
	cp /opt/soft/zk345/conf/zoo_sample.cfg /opt/soft/zk345/conf/zoo.cfg
	mkdir -p /opt/soft/zk345/datas
	sed -i '12c dataDir=/opt/soft/zk345/datas' /opt/soft/zk345/conf/zoo.cfg
	echo "server.0=$hostname:2287:3387" >> /opt/soft/zk345/conf/zoo.cfg
	echo "0" > /opt/soft/zk345/datas/myid
	sed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profile
	sed -i '73a\export ZOOKEEPER_HOME=/opt/soft/zk345' /etc/profile
    sed -i '73a\#ZK' /etc/profile
    echo 'setup zookeeper success!!!'
fi

修改权限

[root@zk1 opt]# chmod 777 zkautoinstall.sh
在这里插入图片描述

运行

[root@zk1 opt]# ./zkautoinstall.sh
在这里插入图片描述在这里插入图片描述

进入/opt/soft/zk345/conf目录下

修改vim zoo.cfg
[root@zk1 conf]# vim zoo.cfg
并且在末尾追加
server.1=zk2:2287:3387
server.2=zk3:2287:3387
在这里插入图片描述

将zookeeper发送到zk2 zk3

[root@zk1 zk345]# scp -r …/zk345/ root@zk2:/opt/soft
[root@zk1 zk345]# scp -r …/zk345/ root@zk3:/opt/soft

查看myid

在zk1中
切换到datas目录下
[root@zk1 conf]# cd …/datas/
查看
[root@zk1 datas]# cat myid
确保 myid的编号与server.x的编号一致

同理zk2
切换到/opt/soft/zk345/datas目录下
[root@zk2 datas]# echo “1” > myid
[root@zk2 datas]# cat myid
在这里插入图片描述
同理zk3
切换到/opt/soft/zk345/datas目录下
[root@zk3 datas]# echo “2” > myid
[root@zk3 datas]# cat myid
在这里插入图片描述

将zk1 /etc/profile 发送给zk2 zk3

[root@zk1 zk345]# scp /etc/profile root@zk2:/etc/
[root@zk1 zk345]# scp /etc/profile root@zk3:/etc/
在这里插入图片描述

运行

刷新配置文件
[root@zk1 zk345]# source /etc/profile
运行zookeeper
[root@zk1 zk345]# zkServer.sh start
在这里插入图片描述
zk2 zk3 重复此步骤

查看jps

[root@zk2 datas]# jps
同理zk1 zk3 重复此步骤
在这里插入图片描述

查看状态

[root@zk1 zk345]# zkServer.sh status
zk2 zk3 重复此步骤
可以看到 zk2为leader zk1和zk3为follower
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关闭服务

[root@zk1 zk345]# zkServer.sh stop
同理zk2 zk3重复此步骤
在这里插入图片描述

编写开启,查看状态,关闭脚本和查看jps脚本

为了方便在一台机器上查看所有机器的状况

zkop.sh

zk1 opt目录下
[root@zk1 opt]# vim zkop.sh

#! /bin/bash
case $1 in
"start"){
        for i in zk1 zk2 zk3
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh start "
          done
};;
"stop"){
    for i in zk1 zk2 zk3
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh stop "
          done
};;
"status"){
        for i in zk1 zk2 zk3
          do
            ssh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh status "
          done
};;
esac

修改zkop.sh权限

[root@zk1 opt]# chmod 777 ./zkop.sh
在这里插入图片描述

运行

开启

[root@zk1 opt]# ./zkop.sh start
在这里插入图片描述

查看状态

[root@zk1 opt]# ./zkop.sh status
在这里插入图片描述

关闭

[root@zk1 opt]# ./zkop.sh stop
在这里插入图片描述

showalljps.sh

查看所有机器的jps
zk1 opt目录下
[root@zk1 opt]# vim showalljps.sh

#! /bin/bash
for i in zk1 zk2 zk3
do
    echo ---------- $i 服务启动状态 -------------
        ssh $i  "source /etc/profile; /opt/soft/jdk180/bin/jps "
done

修改showalljps.sh权限

[root@zk1 opt]# chmod 777 ./showalljps.sh

在这里插入图片描述

运行

[root@zk1 opt]# ./showalljps.sh
在这里插入图片描述

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

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

相关文章

【java】Spring Boot -- Spring AOP原理及简单实现

文章目录一、AOP基本概念1.1、Filter、Interceptor、AOP1.2、AOP中的一些概念1).通知(Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理;通知类型,主要有以下几种:2).连接点(Jo…

Acwing---1246. 等差数列

等差数列1.题目2.基本思想3.代码实现1.题目 数学老师给小明出了一道等差数列求和的题目。 但是粗心的小明忘记了一部分的数列,只记得其中 N个整数。 现在给出这 N个整数,小明想知道包含这 N 个整数的最短的等差数列有几项? 输入格式 输入…

ChatGPT 接入微信,最强聊天机器人来了

最近的 ChatGPT 又再次火热起来了,各种周边工具也是层出不穷,今天我们就一起来做一个基于 ChatGPT 的微信聊天机器人,来感受 AI 世界的快乐吧~ 我们先来看几个我比较关心的问题吧 Python 语言算法 什么是 ChatGPT 人工智能会统治世界吗&a…

【Kubernetes】【二】环境搭建 环境初始化

本章节主要介绍如何搭建kubernetes的集群环境 环境规划 集群类型 kubernetes集群大体上分为两类:一主多从和多主多从。 一主多从:一台Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境多主…

带你玩转Jetson之Deepstream简明教程(四)DeepstreamApp如何使用以及用于工程验证。

1.DeepstreamApp是什么? 如果你安装完毕deepstream整体框架,会在你的系统执行目录内有可执行文件,文件名字是deepstream-app。这是一个可执行脚本文件,通过deepstream框架中的代码在安装的时候编译后install到系统根目录内。 此脚…

家政服务小程序实战教程11-首页跳转到分类页面

小程序的分类页面,通常会以侧边栏导航显示内容,我们使用了侧边选项卡和数据列表组件实现了分类展示的功能 还有个需求是从首页点击某个分类的时候,跳转到分类页时候需要选中对应的类别 01 增加页面参数 页面如果跳转时候需要这种接收参数并实…

JAVA和Spring的SPI机制讲解

文章目录1 SPI机制讲解1.1 引言1.2 Java SPI实现1.2.1 示例说明1.2.2 相关测试1.2.3 源码分析1.3 Spring SPI1.3.1 Spring 示例1.3.2 相关测试类1.3.3 源码分析1 SPI机制讲解 1.1 引言 SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启…

力扣337题 打家劫舍Ⅲ Java语言版

/**每个节点都用一个长度为2的数组来表示其状态,其中dp[0]表示偷该节点所得到的最多钱币,dp[1]表示不偷该节点所得到的最多钱币*/ class Solution {public int rob(TreeNode root) {int[] robRoot robTree(root);return Math.max(robRoot[0],robRoot[1]);}public int[] robTre…

rtp协议

RTP协议 在实时音视频通话中,我们通常使用 UDP 作为传输层协议,使用 RTP 协议包荷载音视频数据,RTP(Real-time Transport Protocol)是一种在 Internet 上传输多媒体数据的应用层协议,它通常建立在 UDP 之上…

RabbitMQ学习(五):RabbitMQ持久化

一、持久化概念在上一章内容中我们已经看到了如何处理任务不丢失的情况,但是如何保障当 RabbitMQ 服务停掉后消 息生产者发送过来的消息不丢失呢?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它将忽视队列 和消息,除非告知它不…

Python 考试练习题4

1. 将元组 (1,2,3) 和集合 {4,5,6} 合并成一个列表。 tup(1,2,3) set{4,5,6} listlist(tup)list(set) print(list) 2. 在列表 [1,2,3,4,5,6] 首尾分别添加整型元素 7 和 0。 #方法1 list[1,2,3,4,5,6] list.insert(0,7) #list.append(0) 这两种也可以 #list.insert(len(list…

PowerJob的server启动都经历了哪些?代码不多也很简单,咱们来逐一理解。

这是一篇让你受益匪浅的文章,点个关注交流一下吧~ PowerJob如何使用,官方文档已经说的很详细了,即使没学过计算机的人,按照那上面的步骤来也是可以搭建出一个可以使用的例子来,所以今天就不在这里重复前人的工作&#…

DataWhale 大数据处理技术组队学习task1

DataWhale 大数据处理技术组队学习task1 一、大数据概述 1. 大数据时代(详细内容参考参考文章) 2. 大数据的概念(又或者是特点) 4V 数据量大(Volume) 数据来源:可以是计算机、手机&#xff…

Linux 常用命令——【 2.查看程序端口占用及网络连接 netstat 命令】

文章目录1. netstat 简介2.命令格式:3. 命令参数:4. 常用命令1. netstat 简介 netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,…

ACWING寒假每日一题python

ACWING寒假每日一题 一、孤独的照片 一个点一个点的来看,比如对于GHGHG中间的G,找到他的左边的G,以及右边的G的位置,l,r分别等于1,答案就要多加上11 但是如果对于 GHHGHHG 中间的G,我们可以看到l,r等于2&a…

【计算机网络期末复习】第六章 应用层

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址: ❤️如果有收获的话,欢迎点…

Echarts 修改雷达图背景分割面,分割线颜色,设置数据线颜色

第016个点击查看专栏目录Echarts的雷达图背景可以是圆形的,也可以是多边形的,背景颜色,线条颜色都可以做个性化设置,这里是改变背景灰色,设置为浅红色。分割线也变成浅蓝色。同时数据线的颜色也变成了亮色。参考源代码…

【LeetCode】最大正方形 [M](动态规划)

221. 最大正方形 - 力扣(LeetCode) 一、题目 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0…

从零实现WebRTC(二):WebRTC的通信过程

文章目录一、WebRTC需要解决的问题二、ICE(Interactive Connectivity Establishment)三、ICE的详细步骤四、知识点四一、WebRTC需要解决的问题 WebRTC是由google提出的的一个用于端到端实现p2p音视频通信的框架。比起其他的hls, http-flv等直播方案,webrtc在公网的…

ChatGPT的来源-InstructGPT论文简要介绍

文章目录前言一、ChatGPT是什么?二、ChatGPT的前身InstructGPT论文解读论文下载地址:主要内容:模型训练数据类型结果效果示例总结前言 现在大火的ChatGPT功能十分强大,不仅可以回答用户问题,编写故事,甚至…