疯狂Hadoop之高可用集群搭建(二)_zookeeper 存储hadoop ha 的路径(2)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

ZKFC是自动故障转移中的另一个新组件,是ZooKeeper的客户端,也监视和管理NameNode的状态。每个运行NameNode的主机也运行了一个ZKFC进程,ZKFC负责:

1)健康监测:ZKFC使用一个健康检查命令定期地ping与之在相同主机的NameNode,只要该NameNode及时地回复健康状态,ZKFC认为该节点是健康的。如果该节点崩溃,冻结或进入不健康状态,健康监测器标识该节点为非健康的。

2)ZooKeeper会话管理:当本地NameNode是健康的,ZKFC保持一个在ZooKeeper中打开的会话。如果本地NameNode处于active状态,ZKFC也保持一个特殊的znode锁,该锁使用了ZooKeeper对短暂节点的支持,如果会话终止,锁节点将自动删除。

3)基于ZooKeeper的选择:如果本地NameNode是健康的,且ZKFC发现没有其它的节点当前持有znode锁,它将为自己获取该锁。如果成功,则它已经赢得了选择,并负责运行故障转移进程以使它的本地NameNode为active。故障转移进程与前面描述的手动故障转移相似,首先如果必要保护之前的现役NameNode,然后本地NameNode转换为active状态。

HDFS-HA规划集群

准备四台虚拟机,按照如下方式分配各节点信息

配置HDFS-HA集群

因为配置文件都在hadoop-3.2.1/etc/hadoop/目录下,所以先进入该目录

进入命令: cd hadoop-3.2.1/etc/hadoop/

配置hadoop-env.sh文件

修改hadoop-env.sh,将文件中配置的HDFS_SECONDARYNAMENODE_USER配置注释,然后添加HDFS_ZKFC_USER、HDFS_JOURNALNODE_USER两个配置

export HDFS_ZKFC_USER=root

export HDFS_JOURNALNODE_USER=root

配置hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:9868</value>
</property>

<!--为这个nameservice选择一个逻辑名称,例如“mycluster”,并为这个配置选项的值使用这个逻辑名称。您选择的名称是任意的。它将用于配置并作为集群中绝对HDFS路径的权威组件。-->
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>

<!--使用逗号分隔的NameNode id列表进行配置。datanode将使用它来确定集群中的所有namenode。例如,本文使用“mycluster”作为nameservice ID,并且我们集群规划使用“node01”、“node02”作为namenode的单独ID,可以这样配置:-->
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

<!--namenode的rpc服务器的监听地址-->
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>node01:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>node02:8020</value>
</property>

<!--namenode的HTTP服务器的监听地址,与rpc同理只不过端口变为9870-->
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>node01:9870</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>node02:9870</value>
</property>

<!--这是配置提供共享编辑存储的journalnode地址的地方,这些地址由活动nameNode写入,由备用nameNode读取,以便与活动nameNode所做的所有文件系统更改保持最新。虽然必须指定几个JournalNode地址,但是应该只配置其中一个uri。URI的形式应该是:qjournal://*host1:port1*;*host2:port2*;*host3:port3*/*journalId*。日志ID是这个名称服务的惟一标识符,它允许一组日志节点为多个联合名称系统提供存储-->
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
</property>

<!--配置故障转移代理类-->
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<!--隔离方法;确保当前时间点只有一个namenode处于active状态,jurnalnode只允许1个namenode来读写数据,但是也会出现意外的情况,因此需要控制对方机器,进行将自我提升[active],将对方降级[standby]-->
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_rsa</value>
</property>

<!--journalnode日志存放路径-->
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/hadoopdata/ha/journal</value>
</property>
<property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
</property>
配置core-site.xml文件

修改hadoop.tmp.dir的路劲,以免与完全分布式路径起冲突

<!--注意更改下 hadoop.tmp.dir 的路径,与node的名称【类似一个域名多ip】-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hdata/ha</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node02:2181,node03:2181,node04:2181</value>
</property>
配置workers文件

workers文件,里面写上从节点所在的主机名

编辑命令:vi workers

在文件中编写如下内容

node02

node03

node04

文件分发

使用scp命令下发hadoop-3.2.1到node02、node03、node04上

文件分发命令如下:

scp -r hadoop-3.2.1 root@node02:/root

scp -r hadoop-3.2.1 root@node03:/root

scp -r hadoop-3.2.1 root@node04:/root

配置hadoop3环境变量

编辑文件命令:vi /etc/profile

在文件中添加如下红色部分内容

export JAVA_HOME=/usr/java/jdk1.8.0_60

export HADOOP_HOME=/root/hadoop-3.2.1

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P _ H O M E / b i n : HADOOP\_HOME/bin: HADOOP_HOME/bin:HADOOP_HOME/sbin

/etc/profile文件分发

scp /etc/profile node02:/etc/

scp /etc/profile node03:/etc/

scp /etc/profile node04:/etc/

node02、node03、node4重新加载 /etc/profile文件

source /etc/profile

Zookeeper集群搭建

zookeeper安装在node02、node03、node04三台虚拟机上

将zookeeper-3.4.6.tar.gz安装包上传到node02上

解压安装包

命令:tar -zxvf zookeeper-3.4.6.tar.gz

配置zookeeper环境

编辑文件命令:vi /etc/profile

添加如下红色部分命令

export ZOOKEEPER_HOME=/root/zookeeper-3.4.6

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P _ H O M E / b i n : HADOOP\_HOME/bin: HADOOP_HOME/bin:HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

配置zookeeper文件

进入zookeeper配置文件所在目录

进入文件命令:cd zookeeper-3.4.6/conf/

修改命令:mv zoo_sample.cfg zoo.cfg

编辑zoo.cfg文件

编辑命令:vi zoo.cfg

  1. 修改zookeeper文件存储路径
  2. 标注zookeeper服务对应的虚拟机以及端口号

文件分发

分发zookeeper到node03、node04上

文件分发命令

scp -r zookeeper-3.4.6 root@node03:/root

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1f3df44433d.png)在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值