greenplum配置高可用_高可用hadoop集群配置就收藏这一篇,动手搭建Hadoop(5)

01 ssh免密安装

02 jdk安装

03 hadoop伪分布式安装

04 hadoop全分布式

完成了前面四步,现在做hadoop的高可用。其实和之前的lvs的高可用差不多的。如果我们有两个namenode节点,分别是node01和node02。假设node01是主节点,node02是从节点,当node01挂掉了以后,node02自动成为主节点。这里通过zookeeper的方式来实现,node01,node02都会注册到zookeeper当中,由zookeeper来实现高可用。文章有点长先收藏再阅读,开始。

准备

node01(192.168.146.101):namenode01 ,ZKFC,JNN(journalnode)

node02(192.168.146.102):namenode02,datanode,zookeeper,ZKFC,JNN

node03(192.168.146.103): datanode, zookeeper, JNN

node04(192.168.146.104): datanode,zookeeper,

hadoop配置修改

修改hadoop_env.sh 文件

在原来的基础上指定ZKFC 和journalnode 两个进程的角色,这里注意我们之前用到的从节点sencondarynamenode现在用不着了,可以remark起来。

cd /usr/hadoop-3.1.2/etc/hadoop

export JAVA_HOME=/usr/java/jdk-12.0.1

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

#export HDFS_SECONDARYNAMENODE_USER=root

export HDFS_ZKFC_USER=root

export HDFS_JOURNALNODE_USER=root

修改core-site.xml 文件

只用修改临时文件的目录即可,原来指向full现在建立一个新目录指向ha

vi core-site.xml

fs.defaultFS

hdfs://node01:9820

hadoop.tmp.dir

/var/hadoop/ha

修改hdfs-site.xml 文件

由于原先所有的datanode都需要和一个namenode做关联,现在做高可用需要让datanode和多个namenode做关联。因此,需要给namenode起一个logic name。同时需要配置两个namenode服务器(node01,node02)对应的rpc和httpaddress的信息。两个namenode进行同步的配置,这里需要指定journalnode服务器的地址。以及故障转移的代理类。

vi hdfs-site.xml

dfs.replication

3

#逻辑namenode 名字

dfs.nameservices

mycluster

#配置两个namenode服务器

dfs.ha.namenodes.mycluster

nn1,nn2

#配置rpc的调用

dfs.namenode.rpc-address.mycluster.nn1

node01:8020

dfs.namenode.rpc-address.mycluster.nn2

node02:8020

#配置http address

dfs.namenode.http-address.mycluster.nn1

node01:9870

dfs.namenode.http-address.mycluster.nn2

node02:9870

#配置journalnode节点

dfs.namenode.shared.edits.dir

qjournal://node01:8485;node02:8485;node03:8485/mycluster

#配置故障转移的调用

dfs.client.failover.proxy.provider.mycluster

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

#故障隔离 当一个从节点即将要成为主节点的时候,会通知原来的主节点使之成为从节点。

dfs.ha.fencing.methods

sshfence

#故障隔离需要的私钥的地址

dfs.ha.fencing.ssh.private-key-files

/root/.ssh/id_rsa

#配置journalnode的存储地址

dfs.journalnode.edits.dir

/var/hadoop/ha/journalnode

dfs.ha.automatic-failover.enabled

true

再回到core-site.xml文件的配置

原来配置的是一个固定的主节点的名字,现在需要使用逻辑的namenode的服务名称,也就是我们在上面hdfs-site.xml中定义的 mycluster 这个名字。以及对zookeeper集群的配置。

fs.defaultFS

hdfs://mycluster

ha.zookeeper.quorum

node02:2181,node03:2181,node04:2181

分发core-site.xml hdfs-site.xml 和 hadoop-env.sh 三个文件到其他三个服务器(node02,node03,node04)

scp core-site.xml hdfs-site.xml hadoop-env.sh node02:`pwd`

scp core-site.xml hdfs-site.xml hadoop-env.sh node03:`pwd`

scp core-site.xml hdfs-site.xml hadoop-env.sh node04:`pwd`

安装配置zookeeper

由于我们之前定义的zookeeper的安装是在node02,node03,node04三个服务器。所以copy下载zookeeper的安装包。对其进行解压。这里我把zk放到/usr 这个目录下面了。

tar xf zookeeper-3.4.6.tar.gz -C /usr/

配置环境变量

export ZOOKEEPER_HOME=/usr/zookeeper-3.4.6

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

再将这个配置分发到其余的两个服务器node03,node04

scp /etc/profile node03:/etc/profile

scp /etc/profile node04:/etc/profile

source /etc/profile

修改zoo.cfg,指定文件存放地址;并且告之参与zk集群的端口的具体信息

cd /usr/zookeeper-3.4.6/conf

mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

dataDir=/var/zookeeper

server.1=node02:2888:3888

server.2=node03:2888:3888

server.3=node04:2888:3888

分发zk到node02,node03

scp -r zookeeper-3.4.6/ node03:`pwd`

scp -r zookeeper-3.4.6/ node04:`pwd`

在三个节点创建zk的存储文件

mkdir /var/zookeeper

指定每个节点对应的服务器的名称根据zoo.cfg中的定义

server.1=node02

server.2=node03

server.3=node04

所以在node02中执行

echo 1 > /var/zookeeper/myid

所以在node03中执行

echo 2 > /var/zookeeper/myid

所以在node04中执行

echo 3 > /var/zookeeper/myid

启动zookeeper

分别在node02,node03,node04上运行zookeeper,并且查看启动后的状态。

zkServer.sh start

zkServer.sh status

74cf8a0fc40d68dc407e539750858224.png
14477b4d304a55bb7a4b5629bbfe08f7.png
3642487cfd03a53e7ee6b5856e6aa9ce.png

可以看到node04作为leader,node02和node03都是follower。

启动journalnode 节点

我配置了三个journalnode节点,分别是node01,node02,node03.所以在这三个节点分别执行以下指令。

hdfs --daemon start journalnode

启动以后会在对应的目录下面生成存储edits持久化文件的目录。这个目录我配置到了/var/hadoop/ha,在前面的cord-site.xml 中有说明。

针对主节点,node01,node02 进行namenode的格式化。这里我们选择node01进行格式化,然后启动namenode做为主节点。再到node02上面去同步node01上面的数据,这样node01是active node02是standby,node02上面同步了node01的namenode的数据,一旦node01无法使用了,node02会变成active状态接替node01的工作。

node01操作

hdfs namenode -format

hdfs --daemon start namenode

node02操作

hdfs namenode -bootstrapStandby

这样node02就把node01的namenode数据同步过来了。

可以到 /var/hadoop/ha/dfs/name 下面的VERSION文件中检查两个节点的clusterID是否相同。

初始化zookeeper

zookeeper需要注册两个主从节点,node01,node02.注册以后当一个节点服务down机或者和zookeeper失去联系了,那么另外一个节点就会接替主节点的位置成为active状态。

ps:可以通过 zkCli.sh 命令打开zookeeper客户端查看zookeeper情况。

node01上运行

hdfs zkfc -formatZK

启动hadoop集群

到node01节点上启动集群

start-dfs.sh

fcebdd650abba58f780b8703bcd0b7ab.png
a88fda78156be5019211860ef533b22c.png
3cca30937216726e7fae35d8bee41b6c.png
0bac8358e717f53e00da82853cf5fbea.png

运行完命令以后打开zookeeper客户端,查看

zkCli.sh

ls /hadoop-ha/mycluster

e0d0e171f5ececaff78137c017154ac3.png

我们看到在myclusert这个集群下面多了两个节点,这两个节点就是zookeeper注册的主从节点,node01,node02。可以通过以下命令查看两个节点的状态。

get /hadoop-ha/mycluster/ActiveBreadCrumb

get /hadoop-ha/mycluster/ActiveStandbyElectorLock

测试高可用效果

去网站看看结果。在浏览器输入192.168.146.101:9870 和 192.168.146.102:9870

node01是active,node02是standby

f4b21de49d571c150e64b5f85dbf602c.png
0d6858199110bc18755ccfa43d0e9e63.png

然后把node01的namenode关掉。

到node01节点上运行

hdfs --daemon stop namenode

3b1ab59c1624c1e0397b866a2075aa96.png
0fed403cd27dc57ba52a7fd7ae612f79.png

可以看到node01无法访问了,这个时候node02成为active状态,依旧可以提供访问。

到此hadoop高可用的配置和启动过程就完毕了。

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

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

相关文章

聊聊我是如何在面试别人Spring事务时“套路”对方的

戳蓝字“CSDN云计算”关注我们哦!“中国最好面试官”我希望把面试当作是一次交流,像朋友那样,而不是像一场Q & A。但也有人觉得,我对应聘者“太好了”,这完全没必要,反正最后他也不会来。好吧&#xff…

JAVA 雪花算法 唯一ID生成工具类

package com.gblfy;/*** Author:JCccc* Description:* Date: created in 15:31 2019/6/12*/ public class SnowflakeIdUtils {// Fields/** 开始时间截 (2015-01-01) */private final long twepoch 1420041600000L;/** 机器id所占的位数 */p…

华为 | 泰山之巅 鲲鹏展翅 扶摇直上九万里

戳蓝字“CSDN云计算”关注我们哦! 文 | 阿晶、王银发于上海华为HC大会现场出品 | CSDN云计算(ID:CSDNcloud)华为在计算产业究竟要怎样LU起袖子加油干?五岳之首、泰山之巅、初升之日、鲲鹏展翅、昇腾万里、华为计…

前端 Leader 如何做好团队规划?阿里内部培训总结公开

摘要: "行成于思,毁于随"——韩愈 在阿里从一线前端工程师到技术 TL(Team Leader) 也三年有余了,最重要最难的就是做规划,你可能会遇到如下几个问题: 业务压力巨大,前端是…

印象笔记编辑pdf_做笔记就用印象笔记,支持录音做笔记( 附插件下载)

印象笔记是全球闻名的效率软件和知识管理工具,印象笔记可以帮助我们简化工作、学习与生活。你可以在手机、电脑、平板、网页等多种设备和平台间,无缝同步每天的见闻、灵感与思考。一站式完成知识信息的收集备份、高效记录、分享、多端同步和永久保存。下…

(vue基础试炼_07)Vue实例生命周期函数

文章目录一、生命周期图示二、常见的生命周期函数三、生命周期函数执行场景四、测试代码五、项目开源地址一、生命周期图示 二、常见的生命周期函数 常见的生命周期函数执行的时间beforeCreateVue初始化createdVue初始化beforeMount模板未渲染到页面上mounted模板已经渲染到页…

独家专访阿里高级技术专家北纬:Dubbo开源重启半年来的快意江湖

摘要: 罗毅,花名北纬。这个名字,如果是混过天涯论坛的大龄网民应该都不陌生,北纬67度3分周公子(简称北纬)虐杀易烨卿MM的世纪大战至今还是天涯神贴 ,当时更是有看客赋诗形容:“目睹此…

实践心得:从读论文到复现到为开源贡献代码

摘要: 本文讲述了从在fast.ai库中读论文,到根据论文复制实验并做出改进,并将改进后的开源代码放入fast.ai库中。介绍去年我发现MOOC网上有大量的Keras和TensorKow教学视频,之后我从零开始学习及参加一些Kaggle比赛,并在…

FPGA资源平民化的新晋- F3 技术解析

摘要: FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高&#xf…

Vue计算属性、方法、侦听器

文章目录一、基础计算模板二、计算属性computed三、方法methods四、侦听器watch五、总结六、源码地址一、基础计算模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue计算属性、方法、侦听器<…

漫画:五分钟看懂车联网

戳蓝字“CSDN云计算”关注我们哦&#xff01;福利扫描添加小编微信&#xff0c;备注“姓名公司职位”&#xff0c;加入【云计算学习交流群】&#xff0c;和志同道合的朋友们共同打卡学习&#xff01;推荐阅读&#xff1a;华为 | 泰山之巅 鲲鹏展翅 扶摇直上九万里聊聊我是如何在…

对数据科学家来说最重要的算法和统计模型

摘要&#xff1a; 本文提供了工业中常用的关键算法和统计技术的概要&#xff0c;以及与这些技术相关的短缺资源。作为一个在这个行业已经好几年的数据科学家&#xff0c;在LinkedIn和QuoLa上&#xff0c;我经常接触一些学生或者想转行的人&#xff0c;帮助他们进行机器学习的职…

华为愿出售5G技术渴望对手;苹果将向印度投资10亿美元;华为全联接大会首发计算战略;腾讯自研轻量级物联网操作系统正式开源……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

数组元素反序

和前面的字符串逆向输出有异曲同工之妙 第一位和最后一位交换位置&#xff0c;然后用比大小循环 那么接下来修改一下这个程序&#xff0c;我们接下来解释一下p的概念 画图解释&#xff1a; 在最前面的 定义的时候&#xff0c;我们将p&#xff08;0&#xff09;定义在了1上&…

如何计算Java对象所占内存的大小

摘要&#xff1a; 本文以如何计算Java对象占用内存大小为切入点&#xff0c;在讨论计算Java对象占用堆内存大小的方法的基础上&#xff0c;详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍&#xff0c;涉及内存模型、锁原理、分代GC、OOP-Klass模型等内容。…

hilbert谱 matlab,怎么在matlab中做信号hilbert边际谱分析

摘要&#xff1a;传统的数字滤波器的设计过程复杂&#xff0c;计算工作量大&#xff0c;滤波特性调整困难&#xff0c;影响了它的应用。本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用MAT…

时间序列数据的处理

摘要&#xff1a; 随着云计算和IoT的发展&#xff0c;时间序列数据的数据量急剧膨胀&#xff0c;高效的分析时间序列数据&#xff0c;使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。演讲嘉宾简介…

saas java框架_XMReport-提供web项目Java套打解决方案

简介XMReport是国内首款支持在线编辑&#xff0c;维护的控件式报表产品。XMReport报表产品分为设计器与引擎两个部分&#xff0c;其中报表设计器是完全基于HTML5技术&#xff0c;提供优秀跨平台的支持&#xff0c;用户无需安装客户端或者插件&#xff0c;仅使用浏览器即可进行报…

只有程序员才能读懂的西游记

戳蓝字“CSDN云计算”关注我们哦&#xff01;这其实一个有关计算机网络协议的故事一、我佛造经传极乐话说我佛如来为度化天下苍生&#xff0c;有三藏真经&#xff0c;可劝人为善。就如图中所示&#xff0c;真经所藏之处&#xff0c;在于云端。佛祖所管辖之下&#xff0c;有四个…

Logtail从入门到精通(四):正则表达式Java日志采集实战

摘要&#xff1a; 为简化日志接入门槛&#xff0c;我们提供了极简模式的日志解析方式&#xff08;如[开启日志采集之旅]()中的介绍&#xff09;。为了更好的对日志进行分析&#xff0c;我们还提供了其他解析方式&#xff0c;例如&#xff1a;分隔符模式、完整正则模式、JSON模式…