(十一)大数据实战——hadoop高可用之HDFS手动模式高可用

前言

本节内容我们介绍一下hadoop在手动模式下如何实现HDFS的高可用,HDFS的高可用功能是通过配置多个 NameNodes(Active/Standby)实现在集群中对 NameNode 的热备来解决上述问题。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种方式将 NameNode很快的切换到另外一台机器,并通过JournalNode实现主备节点的数据同步。

正文

  • 集群规划

HDFS高可用集群规划
hadoop101 hadoop02 hadoop03 NameNode NameNode NameNode JournalNode JournalNode JournalNode DataNode DataNode DataNode

NameNode:控制节点

JournalNode:控制节点数据同步

DataNode:数据节点

  • 清除hadoop集群下的data和logs目录

-清除hadoop101的data和logs目录,hadoop102和hadoop103同上步骤

  • 在/opt/module/hadoop-3.1.3/etc/hadoop目录下修改core-site.xml配置文件
  • core-site.xml配置文件

    <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.1.3/data</value> </property> </configuration>
  • 在/opt/module/hadoop-3.1.3/etc/hadoop目录下修改hdfs-site.xml配置文件
  • 修改hdfs-site.xml配置文件

    <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/nn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dn</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>${hadoop.tmp.dir}/jn</value> </property> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2,nn3</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>hadoop101:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>hadoop102:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn3</name> <value>hadoop103:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>hadoop101:9870</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>hadoop102:9870</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn3</name> <value>hadoop103:9870</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485/mycluster</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</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> </configuration>
  • 分发配置文件到其它hadoop集群服务器
  • 启动hadoop集群的journalnode服务,用于同步namenode数据
  • 命令:hdfs --daemon start journalnode

  • 对hadoop101节点数据格式化并启动namenode服务
  • 数据格式化命令:hdfs namenode -format
  • 启动namenode服务命令:hdfs --daemon start namenode
  • 在hadoop102与hadoop103上面执行以下命令同步hadoop101的元数据信息

命令:hdfs namenode -bootstrapStandby

  • 启动hadoop102与hadoop103的namenode服务

命令:hdfs --daemon start namenode

  • 在所有节点开启datanode服务

命令:hdfs --daemon start datanode

  • 将hadoop101激活为主节点

命令:hdfs haadmin -transitionToActive nn1

  • 查看节点状态

  • 自动模式存在的问题
  • 如果namenode挂机之后,想直接故障转移,把其它节点升级为namenode主节点是不行的,必须先将挂机的namenode重新启动才行,手动模式必须保证所有namenode节点必须是存活状态

  • 在有active状态下的namenode节点,是无法切换其它节点为active节点

  • 集群中只有一个节点是active

结语

hadoop高可用之HDFS手动模式高可用内容到这里就结束了,我们下期见。。。。。。

相关推荐
guanpinkeji15 分钟前
酒店民宿小程序,探索行业数字化管理发展
大数据·小程序·小程序开发·小程序制作·民宿小程序·酒店民宿小程序
Pioneer0000119 分钟前
Elasticsearch实战应用:构建高效的全文搜索引擎
大数据·elasticsearch
东皋长歌2 小时前
Flink安装和Flink CDC实现数据同步
大数据·flink
河南查新信息技术研究院3 小时前
不同的科技查新机构之间有什么区别?
大数据·科技·全文检索
高登先生4 小时前
汇聚全球前沿科技产品,北京智能科技产业展览会·世亚智博会
大数据·人工智能·科技·数学建模·能源
我的K84094 小时前
Hive中自定义函数的使用
数据仓库·hive·hadoop
sunxunyong4 小时前
hive 异常任务中间数据清理
数据仓库·hive·hadoop
管理大亨5 小时前
大数据之Hadoop集群
大数据
说私域6 小时前
全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响
java·大数据·小程序
cleargy8 小时前
FlinkCDC-MYSQL批量写入
大数据·flink