Hadoop高可用搭建(一)

news2024/11/27 10:40:52

目录

创建多台虚拟机

修改计算机名称

快速生效

修改网络信息

重启网络服务

关闭和禁用每台机的防火墙

同步时间

安装ntpdate

定时更新时间

启动定时任务

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

把hosts拷贝发送到每一台虚拟机

配置免密登陆

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

 测试免密登陆是否成功

 在ant151机器运行自动安装jdk脚本autoinstall.sh

把JDK环境变量拷贝到每一台虚拟机

把zookeeper拷贝到虚拟机里面

解压zookeeper

改名zookeeper

进入conf

修改zoo_cfg

创建目录

设置标识

配置环境变量

启动zookeeper

查看zookeeper状态

停止zookeeper

 搭建zookeeper集群

删除datas里面的所有数据

把zk345拷贝到其余机器上面

设置标识

刷新资源 

再次启动zookeeper

查看zookeeper状态

启动/关闭所有zookeeper/查看所有zookeeper状态

zkop.sh脚本

查看所有zookeeper服务启动情况

showjps.sh脚本


创建多台虚拟机

创建虚拟机教程

这里以三台虚拟机为例  ant151  /  ant152   /  ant153


修改计算机名称

三台虚拟机修改名称

[root@localhost ~]# hostnamectl set-hostname ant151

[root@localhost ~]# hostnamectl set-hostname ant152

[root@localhost ~]# hostnamectl set-hostname ant153

快速生效

[root@localhost ~]# bash

修改网络信息

vim /etc/sysconfig/network-scripts/ifcfg-ens33
4  BOOTPROTO=static
15 ONBOOT=yes
16 IPADDR=192.168.78.*
17 GATEWAY=192.168.78.2
18 NETMASK=255.255.255.0
19 DNS1=8.8.8.8

重启网络服务

两种方法:

systemctl restart network.service
service network restart

关闭和禁用每台机的防火墙

[root@ant151 ~]# systemctl stop firewalld
[root@ant151 ~]# systemctl disable firewalld

同步时间

同步时间的下面操作三台机都需要

安装ntpdate

[root@ant151 soft]# yum install -y ntpdate

定时更新时间

[root@ant151 soft]# crontab -e

每五分钟更新一次时间

*/5 * * * * /usr/sbin/ntpdate -u time.windows.com

启动定时任务

[root@ant151 soft]# service crond start

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

[root@ant151 opt]# vim /etc/hosts

下面加入

IP地址 计算机名称

例如:

192.168.111.111    ant151
192.168.111.111    ant152
192.168.111.111    ant153

把hosts拷贝发送到每一台虚拟机

[root@ant151 opt]# scp /etc/hosts root@ant152:/etc/
[root@ant151 opt]# scp /etc/hosts root@ant153:/etc/

配置免密登陆

[root@ant151 ~]# ssh-keygen -t rsa -P ''
[root@ant151 ~]# cd .ssh/

把id_rsa.pub追加到au...下面
[root@ant151 .ssh]# cat id_rsa.pub >> ./authorized_keys

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

[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant151
[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant152
[root@ant151 .ssh]# ssh-copy-id -i ./id_rsa.pub -p22 root@ant153

每一台机器都要执行

 测试免密登陆是否成功

[root@ant151 .ssh]# ssh -p22 root@ant151
[root@ant151 .ssh]# ssh -p22 root@ant152
[root@ant151 .ssh]# ssh -p22 root@ant153

 在ant151机器运行自动安装jdk脚本autoinstall.sh

教程

[root@ant153 shellfile]# ./autoinstall.sh 

刷新资源

[root@ant153 shellfile]# source /etc/profile

[root@ant153 shellfile]# javac

把JDK180发送到每一台虚拟机上面

[root@ant151 opt]# scp -r ./soft/jdk180/ root@ant152:/opt/soft/
[root@ant151 opt]# scp -r ./soft/jdk180/ root@ant153:/opt/soft/

把JDK环境变量拷贝到每一台虚拟机

[root@ant151 zk345]# scp /etc/profile root@ant152:/etc/

[root@ant151 zk345]# scp /etc/profile root@ant153:/etc/

把zookeeper拷贝到虚拟机里面

可用xftp直接拉进去

解压zookeeper

[root@ant151 install]# tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz  -C ../soft

改名zookeeper

[root@ant151 install]# mv /opt/soft/zookeeper-3.4.5-cdh5.14.2/ /opt/soft/zk345
可以不改,改名便于操作

进入conf

[root@ant151 soft]# cd /opt/soft/zk345/conf

把zoo_sample.cfg,copy一份改名为zoo.cfg

修改zoo_cfg

[root@ant151 conf]# vim ./zoo.cfg 

:set nu查看行号

修改12行用于存放数据

在最后加上server.0=ant151:22887:3387

创建目录

[root@ant151 conf]# mkdir /opt/soft/zk345/datas

设置标识

在datas里面创建myid用于标识便于找到ant151这台机器

[root@ant151 conf]# cd /opt/soft/zk345/datas/

[root@ant151 datas]# echo "0" > myid

配置环境变量

[root@ant151 zk345]# vim /etc/profile

把环境变量拷贝到其余机器

[root@ant151 zk345]# scp /etc/profile root@ant152:/etc/

[root@ant151 zk345]# scp /etc/profile root@ant153:/etc/

#ZK
export ZOOKEEPER_HOME=/opt/soft/zk345
export PATH=$PATH:$ZOOKEEPER_HOME/bin

从 解压 开始到 配置环境变量 的操可提取到一个脚本里面直接操作

操作方法类似JDK   教程


#! /bin/bash
echo 'auto 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=/tmp/zookeeper/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

TIP:

如果start出现下面问题

 只需 kill 掉这个process即可

[root@ant151 soft]# kill -9 92810

再次启动则会正常 

启动zookeeper

[root@ant151 zk345]# ./bin/zkServer.sh start

查看zookeeper状态

[root@ant151 zk345]# ./bin/zkServer.sh status

停止zookeeper

[root@ant151 soft]# zkServer.sh stop

 搭建zookeeper集群

[root@ant151 zk345]# vim ./conf/zoo.cfg 

在最下面加上

server.0=ant151:2287:3387
server.1=ant152:2287:3387
server.2=ant153:2287:3387

这里只能是奇数,不能是偶数,因为要投票选举,如果是偶数则会出现平票的情况,所有只能是偶数

删除datas里面的所有数据

[root@ant151 zk345]# rm -rf /opt/soft/zk345/datas/*

把zk345拷贝到其余机器上面

[root@ant151 zk345]# scp -r ../zk345/ root@ant152:/opt/soft
[root@ant151 zk345]# scp -r ../zk345/ root@ant153:/opt/soft

设置标识

注意:目录要在datas下面,上面有一步把ant151里面的datas删除了,所有这里还要设置

ant151  [root@ant151 datas]#  echo "0" > myid

ant152  [root@ant152 datas]#  echo "1" > myid

ant153  [root@ant153 datas]#  echo "2" > myid

这里设置的标识要与上面的zoo.cfg下面设置的对应

刷新资源 

[root@ant153 datas]# source /etc/profile

再次启动zookeeper

[root@ant151 datas]# zkServer.sh start

[root@ant152 datas]# zkServer.sh start

[root@ant153 datas]# zkServer.sh start

三台机器都要启动

查看zookeeper状态

[root@ant153 datas]# zkServer.sh status

ant151:follower

ant152:leader

 ant153:follower

启动/关闭所有zookeeper/查看所有zookeeper状态

在opt下面创建一个shell目录,在创建一个zkop.sh文件用于存放脚本

创建目录

[root@ant151 opt]# mkdir shell

进入shell

[root@ant151 opt]# cd ./shell

创建zkop.sh并编辑
[root@ant151 shell]# vim zkop.sh

修改权限
[root@ant151 shell]# chmod 733 zkop.sh 

zkop.sh脚本

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

关闭所有 zookeeper

 开启所有zookeeper

 查看所有zookeeper状态

查看所有zookeeper服务启动情况

在opt下面创建一个shell目录,在创建一个showjps.sh文件用于存放脚本

创建showjps.sh并编辑
[root@ant151 shell]# vim showjps.sh

修改权限
[root@ant151 shell]# chmod 733 showjps.sh 

showjps.sh脚本

# showalljps.sh
#! /bin/bash
for i in ant151 ant152 ant153
do
    echo ---------- $i 服务启动状态 -------------
        ssh $i  "source /etc/profile; /opt/soft/jdk180/bin/jps "
done

[root@ant151 shell]# ./showjps.sh  

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

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

相关文章

二三层网络设备封装与解封装原理

1、寻址转发(寻址指的是寻找IP地址) 路由表放在一个公共的地方,比如主控板上,由主控板 的CPU运行路由协议,计算路由,生成和维护路由表。 转发表与路由表: 转发表是根据路由表生成的。路由表中…

17- 梯度提升回归树GBDT (集成算法) (算法)

单一KNN算法: # knn近邻算法: K-近邻算法(KNN) from sklearn.neighbors import KNeighborsClassifier knn KNeighborsClassifier() knn.fit(X_train,y_train)KNN集成算法: from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble i…

在浏览器输入URL后发生了什么?

在浏览器输入URL并获取响应的过程,其实就是浏览器和该url对应的服务器的网络通信过程。从封装的角度来讲,浏览器和web服务器执行以下动作:(简单流程)1、浏览器先分析超链接中的URL:分析域名是否规范2、浏览器向DNS请求…

opencv基础知识和绘图图形

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

拥抱ChatGPT,开启结对咨询模式!

ChatGPT刮起了一阵旋风,ChatGPT到底能做什么?做到什么程度?真的会让咨询顾问失业吗?带着这样的疑问,我费尽周折,注册了ChatGPT账号。我先从一个大众化的话题开启了与ChatGPT的对话:如何提高软件…

分享111个HTML电子商务模板,总有一款适合您

分享111个HTML电子商务模板,总有一款适合您 111个HTML电子商务模板下载链接:https://pan.baidu.com/s/1e8Wp1Rl9RaFrcW0bilIatg?pwdc97h 提取码:c97h Python采集代码下载链接:采集代码.zip - 蓝奏云 HTML5家居家具电子商务网…

用到的C++的相关知识-----未完待续

文章目录前言一、vector函数的使用1.1 构造向量二、常用函数2.1 矩阵输出函数2.2 向量输出函数2.3 矩阵的使用2.4三、new的用法3.1 内存的四种分区3.2 new的作用3.33.4四、4.14.24.34.4总结前言 只是为方便学习,不做其他用途 一、vector函数的使用 有关的文章 C v…

十六、基于FPGA的CRC校验设计实现

1,CRC校验循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的…

【情人节用Compose给女神写个爱心动画APP】

情人节用Compose给女神写个爱心动画APP前言涉及知识点实现思路实现过程绘制爱心创建动画效果Preview预览效果完整源码彩蛋前言 前一阵子看电视里的学霸用代码写了个炫酷的爱心,网上有很多js和python的源码,复制粘贴就能拥有,但是Android的好…

重写-linux内存管理-伙伴分配器(一)

文章目录一、伙伴系统的结构二、初始化三、分配内存3.1 prepare_alloc_pages3.2 get_page_from_freelist3.2.1 zone_watermark_fast3.2.2 zone_watermark_ok3.2.3 rmqueue3.2.3.1 rmqueue_pcplist3.2.3.2 __rmqueue3.2.3.2.1 __rmqueue_smallest3.2.3.2.2 __rmqueue_fallback3.…

怎么代理微信小程序创业?

随着微信的兴起,小程序已经成为了人们生活中不可或缺的一部分。如果你想要创业的话,那么代理微信小程序是一个不错的选择。本文将为大家介绍怎么代理微信小程序创业。 一、什么是微信小程序 微信小程序是一款专为移动设备使用者而设计的应用。它通过扫…

javaEE 初阶 — 滑动窗口

文章目录滑动窗口1 滑动窗口下如何处理丢包TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 确认应答机制、超时重传机制、连接管理机制 都是给 TCP 的可靠性提供支持的。 虽然事变的比较可靠了,但是是有牺牲的,那就是传输…

黑马SpringCloud知识点和面试题

目录 一、微服务 1.1、微服务技术栈 1.2、微服务的介绍: 1.3、微服务技术对比 1.4、认识微服务-springcloud 1.4.1、springcloud和springboot的兼容性(左边springcloud右边springboot版本) 1.5、服务拆分,服务远程调用&…

数学建模美赛【LaTeX】公式、表格、图片

数学建模美赛【LaTeX】公式、表格、图片 1 宏包 \package{ } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。 每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版&a…

opencv的TrackBar控件

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

HTML预格式化文本pre标签

文章目录参考white-spaceword-breakfont-family参考 https://blog.csdn.net/weixin_44368963/article/details/120054949 https://www.zhangxinxu.com/wordpress/2017/03/css-font-family-chinese-english/ pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留…

UG二次开发装配篇 添加/拖动/删除组件方法的实现

我们在UG装配的过程中,经常会遇到需要调整组件目录位置,在软件设计过程中可以通过在目录树里面拖动组件来完成。 那么,如果要用程序实现组件的移动/拖动,我们要怎么做呢? 本节就完成了添加/拖动/删除组件方法的实现&…

ZooKeeper集群搭建步骤

一、准备虚拟机准备三台虚拟机,对应ip地址和主机名如下:ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname,并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …

分享好玩的h5小游戏制作步骤_怎么做h5微信小游戏

近年来,市面上一直流行各种h5游戏,例如投票、答题、刮刮乐、大转盘等等等等,而且我在各种营销场景下经常看到它们的身影,是做促销,引流和宣传的神器之一!那么,怎么做好玩的h5游戏?还…

网络安全-Nmap

网络安全-Nmap Nmap-号称诸神之眼 这个呢就是用来扫描网络端口的 Namp的工作原理很像一个雷达 做任何攻击之前,得先知道怎么去找破绽,而不是钢铁洪流,那个是不叫渗透了,叫硬钢。 咋用呢? 很简单 直接 nmap 后面跟网址…