当前位置: 首页 > news >正文

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…...

【MFC】模拟采集系统——界面设计(17)

功能介绍 启动界面 开始采集: PS:不涉及 数据保存,重现等功能 界面设计 界面分为三块:顶部黑条带关闭按钮、左边对话框,右边的主界面 资源: 顶部黑条 top.bmp 2* 29 (宽 * 高 像素点&…...

锐捷(十五)mpls vxn跨域optionc场景

一 实验拓扑二 实验需求ce1和ce2为两个分公司,要求两个分公司之间用mpls vxn 进行通信,组网方式是optionc。三 实验分析optionc在转发平面上有点难理解,有一些关键点需要注意,大家点击链接可以参考我上篇发过的一个文章&#xff1…...

2023备战金三银四,Python自动化软件测试面试宝典合集(七)

马上就又到了程序员们躁动不安,蠢蠢欲动的季节~这不,金三银四已然到了家门口,元宵节一过后台就有不少人问我:现在外边大厂面试都问啥想去大厂又怕面试挂面试应该怎么准备测试开发前景如何面试,一个程序员成长之路永恒绕…...

redis 主从复制

在redis的持久化RDB与AOF详解文章中,我们知道如果redis宕机了,我们可以通过AOF 和 RDB 文件的方式恢复数据,从而保证数据的丢失(或少量损失)从而提高稳定性。但是,如果我们数据只存在一台redis服务器中&…...

如何用Redis实现延迟队列

背景前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是一个小项目,并没有引入MQ,我也不太想…...

项目文件相关总结

风险登记册 风险登记册记录了已识别单个风险的详细信息。其主要内容包括: 已识别的风险清单潜在的风险责任人潜在的风险应对措施清单风险管理计划要求的其他信息供方选择标准 供方选择标准用于确保选出的建议书将提供最佳质量的所需服务,主要内容 包括: 能力和潜力产品成本…...

ZooKeeper集群搭建步骤

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

网际协议IP

网际协议IP 文章目录网际协议IP[toc]虚拟互联网IP地址及其表示方法分类IP地址(两级)无分类编址 CIDR网路前缀地址块地址掩码子网划分(三级IP地址)IP地址和MAC地址地址解析协议ARPIP数据报的格式IP数据报首部的固定部分中的各字段IP数据报首部的可变部分分…...

Python 语言参考手册、教程、标准库

官方文档:https://docs.python.org/zh-cn/3.11/ Python 语言参考手册 介绍了 Python 句法与“核心语义”。在力求简明扼要的同时,我们也尽量做到准确、完整。有关内置对象类型、内置函数、模块的语义在 Python 标准库 中介绍。有关本语言的非正式介绍&am…...

数据库连接池 BoneCP、HikariCP 等

文章目录 数据库连接池 BoneCP、HikariCP 等BoneCPDruidTomcat Jdbc PoolHikariCPC3p0DbcpLRUPSCachePS数据库连接池 BoneCP、HikariCP 等 BoneCP 官方说法 BoneCP 是一个高效、免费、开源的 Java 数据库连接池实现库 设计初衷就是为了提高数据库连接池性能,根据某些测试数…...

wordpress外链url/seo关键词排名优化怎么样

目前Java中switch语句支持的数据类型包括:byte、short、int、char、String以及Enum,那么switch语句是如何实现的呢?一、switch对整型的支持public void switchInt(int value) {switch (value) {case 1:System.out.println("1");bre…...

网站服务器多少钱一年/百度知道合伙人官网登录入口

leetcode 297. Serialize and Deserialize Binary Tree 找工作面试的过程中碰见了一道出场率很高的面试题,在leetcode上有这道题,属于hard难度,leetcode297-实现二叉树的序列化和反序列化。用了两种方法,一种按层次(BFS)进行序列…...

渠道网络建设怎么写/搜索排名优化策划

最近在学习javascript函数式编程,对其中大名鼎鼎的curry十分感兴趣,curry函数可以接受一个函数,我们暂且称之为原始函数,返回的也是一个函数,柯里化函数,这个返回的柯里化函数功能十分强大,他在…...

怎么快速建网站教程/俄罗斯搜索引擎浏览器官网入口

学习目标: Unity接入地图SDK 学习内容: 初步看了下,决定接入腾讯地图的SDK,这是完整的开发者文档,先刨个坑,以后有时间了再来填开发指南 过程 学习产出: 总结 欢迎大佬多多来给萌新指正&…...

长兴住房和城乡建设局网站/友情链接有哪些作用

方法一:插入断点,Debug运行 在欲查看变量值的语句前,插入断点,Debug运行。之后,就在Debug面板下,可以查看各变量值,然后还可按F8、F7、F9查看、调试代码。也可对某些变量,点击右键&a…...

前端开发一个月多少钱/seo建站营销

转自:http://blog.csdn.net/helencoder/article/details/50328629 近期项目中,遇到数据表去重要求,对于ThinkPHP的去重有了更加准确的认识和体会。 两种去重方式: $test_data M(hot); //实例化数据表 $data $test_data->Di…...