栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HDFS-HA 手动模式

HDFS-HA 手动模式

文章目录
  • 环境准备
  • 规划集群
  • 配置 HDFS-HA 集群
  • 启动 HDFS-HA 集群
  • 问题提出

环境准备

(1)修改 IP
(2)修改主机名及主机名和 IP 地址的映射
(3)关闭防火墙
(4)ssh 免密登录
(5)安装 JDK,配置环境变量等

规划集群
hadoop102hadoop103hadoop104
NameNodeNameNodeNameNode
JournalNodeJournalNodeJournalNode
DataNodeDataNodeDataNode

JournalNode作用:NameNode之间相互通信!

配置 HDFS-HA 集群

1)官方地址:http://hadoop.apache.org/
2)在 opt 目录下创建一个 ha 文件夹

[root@hadoop102 ~]$ cd /opt
[root@hadoop102 opt]$ mkdir ha

3)将/opt/module/下的 hadoop-3.1.3 拷贝到/opt/ha 目录下(记得删除 data 和 log 目录)

[root@hadoop102 opt]$ cp -r /opt/module/hadoop-3.1.3 /opt/ha/

4)配置 core-site.xml



 
    
   
    fs.defaultFS  
    hdfs://mycluster 
    
    
   
    hadoop.tmp.dir  
    /opt/ha/hadoop-3.1.3/data 
   

5)配置 hdfs-site.xml



 
    
   
    dfs.namenode.name.dir  
    file://${hadoop.tmp.dir}/name 
    
    
   
    dfs.datanode.data.dir  
    file://${hadoop.tmp.dir}/data 
    
    
   
    dfs.journalnode.edits.dir  
    ${hadoop.tmp.dir}/jn 
    
    
   
    dfs.nameservices  
    mycluster 
    
    
   
    dfs.ha.namenodes.mycluster  
    nn1,nn2,nn3 
    
    
   
    dfs.namenode.rpc-address.mycluster.nn1  
    hadoop102:8020 
    
   
    dfs.namenode.rpc-address.mycluster.nn2  
    hadoop103:8020 
    
   
    dfs.namenode.rpc-address.mycluster.nn3  
    hadoop104:8020 
    
    
   
    dfs.namenode.http-address.mycluster.nn1  
    hadoop102:9870 
    
   
    dfs.namenode.http-address.mycluster.nn2  
    hadoop103:9870 
    
   
    dfs.namenode.http-address.mycluster.nn3  
    hadoop104:9870 
    
    
   
    dfs.namenode.shared.edits.dir  
    qjournal://hadoop102:8485;hadoop103:8485;hadoop104: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 
   

6)分发配置好的 hadoop 环境到其他节点

启动 HDFS-HA 集群

1)将 HADOOP_HOME 环境变量更改到 HA 目录(三台机器)

[root@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

将 HADOOP_HOME 部分改为如下

#HADOOP_HOME
export HADOOP_HOME=/opt/ha/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

去三台机器上 source 环境变量

[root@hadoop102 ~]$ source /etc/profile

2)在各个 JournalNode 节点上,输入以下命令启动 journalnode 服务

[root@hadoop102 ~]$ hdfs --daemon start journalnode
[root@hadoop103 ~]$ hdfs --daemon start journalnode
[root@hadoop104 ~]$ hdfs --daemon start journalnode

3)在[nn1] (hadoop102)上,对其进行格式化,并启动

[root@hadoop102 ~]$ hdfs namenode -format
[root@hadoop102 ~]$ hdfs --daemon start namenode

4)在[nn2]和[nn3] (hadoop103和hadoop104)上,同步 nn1 的元数据信息

[root@hadoop103 ~]$ hdfs namenode -bootstrapStandby
[root@hadoop104 ~]$ hdfs namenode -bootstrapStandby

5)启动[nn2]和[nn3]

[root@hadoop103 ~]$ hdfs --daemon start namenode
[root@hadoop104 ~]$ hdfs --daemon start namenode

6)查看 web 页面显示

102图

103图


104图


7)在所有节点上,启动 datanode

[root@hadoop102 ~]$ hdfs --daemon start datanode
[root@hadoop103 ~]$ hdfs --daemon start datanode
[root@hadoop104 ~]$ hdfs --daemon start datanode

8)将[nn1]切换为 Active

[root@hadoop102 ~]$ hdfs haadmin -transitionToActive nn1

9)查看是否 Active

[root@hadoop102 ~]$ hdfs haadmin -getServiceState nn1

客户端图


网页图

问题提出

当hadoop102的 namenode挂掉了怎么办?

测试:

hadoop102 网页 :


此时hadoop 103 和 104 依然都是从节点



所以也就是说,当hadoop102 (主节点)挂掉了之后,103和104两个从节点并不会变成主节点,现在手动将hadoop103变成主节点尝试 (没有启动hadoop102的情况下)

结果显示,报错。现在我们将hadoop102中的NN启动,再次开始将hadoop103变成主节点尝试

[root@hadoop102 ~]$ hdfs --daemon start namenode
[root@hadoop103 ~]$ hdfs haadmin -transitionToActive nn2

结果成功


hadoop102 和 hadoop103 的网页图



所以结果就是,当一个节点挂掉之后,就算是手动模式启动其他节点,也要等挂掉的节点起来之后,才能去手动将其他节点的机器变成主节点。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号