Hadoop高可用搭建(一)
目录
创建多台虚拟机
修改计算机名称
快速生效
修改网络信息
重启网络服务
关闭和禁用每台机的防火墙
同步时间
安装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=truehostname=`hostname`if [ "$zk" = true ];thenecho '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/zk345cp /opt/soft/zk345/conf/zoo_sample.cfg /opt/soft/zk345/conf/zoo.cfgmkdir -p /opt/soft/zk345/datassed -i '12c dataDir=/tmp/zookeeper/datas' /opt/soft/zk345/conf/zoo.cfgecho "server.0='$hostname':2287:3387" >> /opt/soft/zk345/conf/zoo.cfgecho "0" > /opt/soft/zk345/datas/myidsed -i '73a\export PATH=$PATH:$ZOOKEEPER_HOME/bin' /etc/profilesed -i '73a\export ZOOKEEPER_HOME=/opt/soft/zk345' /etc/profilesed -i '73a\#ZK' /etc/profileecho '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 ant153dossh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh start "done
};;
"stop"){for i in ant151 ant152 ant153dossh $i "source /etc/profile; /opt/soft/zk345/bin/zkServer.sh stop "done
};;
"status"){for i in ant151 ant152 ant153dossh $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
doecho ---------- $i 服务启动状态 -------------ssh $i "source /etc/profile; /opt/soft/jdk180/bin/jps "
done
[root@ant151 shell]# ./showjps.sh

相关文章:
Hadoop高可用搭建(一)
目录 创建多台虚拟机 修改计算机名称 快速生效 修改网络信息 重启网络服务 关闭和禁用每台机的防火墙 同步时间 安装ntpdate 定时更新时间 启动定时任务 设置集群中每台机器的/etc/hosts 把hosts拷贝发送到每一台虚拟机 配置免密登陆 将本机的公钥拷贝到要免密登…...
算法 - 剑指Offer 重建二叉树
题目 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 解题思路 这题较为复杂, 首先审题,前序遍历规则:根左右, 中序遍历&#x…...
手写JavaScript常见5种设计模式
想分享的几种设计模式 目前模式:工厂模式,单例模式,适配器模式,装饰者模式,建造者模式 建造者模式 简介:建造者模式(builder pattern)比较简单,它属于创建型模式的一种…...
Python 异步: 当前和正在运行的任务(9)
我们可以反省在 asyncio 事件循环中运行的任务。这可以通过为当前运行的任务和所有正在运行的任务获取一个 asyncio.Task 对象来实现。 1. 如何获取当前任务 我们可以通过 asyncio.current_task() 函数获取当前任务。此函数将为当前正在运行的任务返回一个任务对象。 ... # …...
REDIS-雪崩、击穿、穿透
直接发车🚗 一.雪崩 1.触发原因 A.大量缓存数据在同一时间过期(失效) B.redis故障宕机 上述均导致全部请求去访问数据库,导致DB压力骤增,严重则导致数据库宕机/系统宕机 2.应对策略 不同触发原因,应对策略也不一致 应对A&a…...
什么人合适学习Python
发了几天的Python基础,也认识了一些朋友,忽然有人问起,说为啥学Python,或者说啥人学习Python,作为一个教龄8年从Python一线讲师到Python教学主管的我和大家分享一下个人的看法,还是提前说一下,个…...
greenDao的使用文档
介绍:greenDAO 是一款轻量级的 Android ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不在需要编写复杂的 SQL语句, 在性能方面,greenDAO 针对 Android 进行了高度优化, …...
基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统
基于JAVASpringBootLayUIShiro的仓库管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项…...
金三银四面试必看,复盘字节测试开发面试:一次测试负责人岗位面试总结
最近面试了某企业的测试负责人岗位,历经四面,收获蛮多的。 这篇文章,我想聊聊这次面试过程中的一些经历,以及些许经验和教训。 岗位要求 岗位名称:测试负责人 岗位要求:1、扎实的技术以及丰富的技术项目…...
【算法自由之路】 贪心算法
贪心算法 局部最右得到全局最右难点在于如何证明局部最优可以得到全局最优堆 和 排序 是贪心算法最常用的实现算法 贪心算法作为最符合自然智慧的算法,思路是从小部分取最优从而获得最终的最优,但是难得是怎样获取部分最优才能得到全局最优。 有时候我…...
Scratch少儿编程案例-水果忍者-学生作业
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...
7.Docker Compose
Docker Compose 介绍 Docker Compose是Docker官方编排(Orchestration)项目之一,负责快速的部署分布式应用。其代码目前在https://github.com/docker/compose上开源。Compose 定位是 「定义和运行多个 Docker 容器的应用(Definin…...
GitHub访问问题与 Steam++下载及使用(适合小白)
前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…...
Oracle对象——视图之简单视图与视图约束
文章目录什么是视图为什么会使用视图视图语法案例简单视图的创建更改数据基表,视图数据会变化么?更改视图数据,基表数据会变更么?带检查约束的视图结论创建只读视图(MySQL不支持)总结什么是视图 视图是一种…...
SAP模块常用增强总结
MM模块: 采购订单增强: BADI :ME_GUI_PO_CUST ME_PROCESS_PO_CUST 物料凭证增强: BADI:MB_DOCUMENT_BADI USER-EXIT:MBCF0002 实现功能1、当参照预留过帐时,检查填入数量是否小于预留数量 2…...
当make执行遇到 Arguments too long
1. 问题 Ubuntu20.04上make编译生成so的时候报错: make[1]:execvp:/bin/sh:Arguments too long对应makefile中的报错位置,仅仅是生成so的时候报错,伪代码如下 ${build_tool} -shared -fpic -o "$" ${OBJ_FILE} ${LDFLAGS}然而如…...
《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)
1.简介 上一篇文章中,从TestNg的特点我们知道支持变量,那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试。那么如何实现同时启动不同的浏览器对脚本进行测试,且听我娓娓道来。 2.项目实战 2.1创建一个TestNg class 1.首先按…...
Maven基础
Maven简介 传统项目: jar包不统一 不兼容 项目中有部分jar包会升级 没升级的部分会起冲突 管理复杂 Maven本质是一个项目管理工具 pom POM Project Object Model 项目对象模型 把项目以对象形式进行管理 先写 pom.xml 的配置文件 代表一个项目 1个项目对应1个po…...
C++入门:初识类和对象
C入门:类和对象1 本节目录C入门:类和对象11.auto关键字(C11)1.1类型别名思考1.2auto简介typeid运算符:获取类型信息1.3 auto的使用细则1.4auto不能推到的场景2.基于范围的for循环(C11)2.1范围for的语法2.2范围for的使用条件3.指针…...
BERT在CNN上也能用?看看这篇ICLR Spotlight论文丨已开源
如何在卷积神经网络上运行 BERT?你可以直接用 SparK —— 字节跳动技术团队提出的提出的稀疏层次化掩码建模 ( Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling ),近期已被人工智能顶会 ICLR 2023 收录为 Spotligh…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...










