HadoopHA模式(由于Hadoop的HA模式是在Hadoop完全分布式基础上,利用zookeeper等协调工具配置的高可用的Hadoop集群模式(1)

7.首次启动HDFS的HA模式,步骤如下

7.1.在虚拟机master上启动zookeeper集群

7.2.在虚拟机master上格式化zookeeper

7.3.分别在虚拟机master,slave1,slave2上启动journalnode进程

7.4.然后格式化

7.5.

start-all.sh报错

hadoop-daemon.sh start namenode单独启动master上的namenode

hdfs namenode -bootstrapStandby再在另外你要起的虚拟机上同步namenode

最后 start-all.sh

8.在Master节点上使用命令分别查看服务nn2与rm2进程状态

hdfs haadmin -getServiceState nn2

yarn rmadmin -getServiceState rm2


HadoopHA模式搭建规划
| 主机名 | IP地址 | 相关进程 |
| master | 根据自己的 | NameNode,DataNode, DFSZKFailoverController, QuorumPeerMain,JournalNode, ResourceManager,NodeMananger |
| slave1 | 根据自己的 | NameNode,DataNode, DFSZKFailoverController, QuorumPeerMain,JournalNode, ResourceManager,NodeMananger |
| slave2 | 根据自己的 | DataNode, NodeMananger, QuorumPeerMain, JournalNode |

1.前期准备


1.1.hadoop-3.1.3.tar.gzjdk-8u212-linux-x64.tar.gzapache-zookeeper-3.5.7-bin.tar.gz三个包提取码:k5y6

2.解压安装包,配置环境变量

tar -zxf  tar包  -C  指定目录

解压后

apache-zookeeper-3.5.7-bin名字好长不太习惯可以用mv改名

或者ln -s 软链接

vim /etc/profile配置环境变量,source /etc/profile使环境变量生效

验证

hadoop version

java -version

3. 将三个节点分别命名为master、slave1、slave2并做免密登录

修改主机名,断开重连

hostnamectl set-hostname 主机名

免密在前面Hadoop完全分布式搭建说过,这里不再赘述

4.搭建zookeeper集群

cd /opt/module/zookeeper/conf

cp zoo_sample.cfg zoo.cfg

编辑zoo.cfg新增下列配置

根据配置的路径新建zkdata,zkdatalog目录。然后到zkdata目录中可以touch新建一个文件myid,也可以直接echo写入为1,另外slave1,salve2分别对应2,3。

5.分发解压后的java,/etc/profile,zookeeper修改myid为2,3

scp -r /opt/module/jdk1.8.0_212/ slave1:/opt/module/

scp -r /opt/module/jdk1.8.0_212/ slave2:/opt/module/

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile(不要忘记source)

scp -r /opt/module/zookeeper/ slave1:/opt/module/

scp -r /opt/module/zookeeper/ slave2:/opt/module/

6.启动zookeeper

zkServer.sh start

查看状态

zkServer.sh status

cd /opt/module/hadoop-3.1.3/etc/hadoop

vim core-site.xml

fs.defaultFS hdfs://cluster The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem. hadoop.tmp.dir /opt/module/hadoop-3.1.3/tmpdir A base for other temporary directories. ha.zookeeper.quorum master:2181,slave1:2181,slave2:2181 A list of ZooKeeper server addresses, separated by commas, that are to be used by the ZKFailoverController in automatic failover.

vim hdfs-site.xml

dfs.replication 3 Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. dfs.nameservices cluster Comma-separated list of nameservices. dfs.ha.namenodes.cluster nn1,nn2 The prefix for a given nameservice, contains a comma-separated list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).

Unique identifiers for each NameNode in the nameservice, delimited by
commas. This will be used by DataNodes to determine all the NameNodes
in the cluster. For example, if you used Ἶ@\myclusterἾ@] as
thh
e nameservice
ID previously, and you wanted to use Ἶ@\nn1Ἶ@] and Ἶ@~\nn22
Ἶ@@
~] as the individual
IDs of the NameNodes, you would configure a property
dfs.ha.namenodes.mycluster, and its value “nn1,nn2”.



dfs.namenode.rpc-address.cluster.nn1
master:8020

A comma separated list of auxiliary ports for the NameNode to listen on.
This allows exposing multiple NN addresses to clients.
Particularly, it is used to enforce different SASL levels on different ports.
Empty list indicates that auxiliary ports are disabled.



dfs.namenode.rpc-address.cluster.nn2
slave1:8020

A comma separated list of auxiliary ports for the NameNode to listen on.
This allows exposing multiple NN addresses to clients.
Particularly, it is used to enforce different SASL levels on different ports.
Empty list indicates that auxiliary ports are disabled.

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

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

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

2519153288)]
[外链图片转存中…(img-jL1KN0au-1712519153288)]
[外链图片转存中…(img-bxWIIOug-1712519153289)]

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

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

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-7QxdCMWM-1712519153289)]

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是hadoop高可用集群配置的步骤: 1. 配置hadoop集群的core-site.xml文件,增加如下配置: ```xml <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>zk1:2181,zk2:2181,zk3:2181</value> </property> ``` 2. 配置hadoop集群hdfs-site.xml文件,增加如下配置: ```xml <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node2:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node1:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node2:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node1:8485;node2:8485;node3:8485/mycluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/data/journal</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_rsa</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> ``` 3. 配置hadoop集群的mapred-site.xml文件,增加如下配置: ```xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` 4. 配置hadoop集群的yarn-site.xml文件,增加如下配置: ```xml <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>mycluster</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node1</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node2</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>node1:8088</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>node2:8088</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>zk1:2181,zk2:2181,zk3:2181</value> </property> ``` 5. 配置zookeeper集群的zoo.cfg文件,增加如下配置: ```cfg server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888 ``` 6. 在每个节点上创建一个myid文件,文件内容为该节点在zookeeper集群中的编号,例如在node1上创建myid文件,文件内容为1。 7. 启动zookeeper集群。 8. 在hadoop集群的每个节点上启动journalnode: ```bash hadoop-daemon.sh start journalnode ``` 9. 在namenode1上格式化hdfs: ```bash hdfs namenode -format ``` 10. 在namenode1上启动hdfs: ```bash start-dfs.sh ``` 11. 在namenode1上启动yarn: ```bash start-yarn.sh ``` 12. 在namenode1上启动自动故障转移: ```bash hdfs haadmin -transitionToActive nn1 ``` 13. 在namenode2上启动hdfs: ```bash start-dfs.sh ``` 14. 在namenode2上启动yarn: ```bash start-yarn.sh ``` 15. 在namenode2上启动自动故障转移: ```bash hdfs haadmin -transitionToStandby nn2 ``` 16. 测试hadoop高可用集群是否正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值