精华内容
下载资源
问答
  • Hadoop主从切换失败

    2018-12-17 15:10:22
    主节点node1,从节点node2,集群启动后node1 Active,node2 ...发现切换失败(之前一直是这样子做的),集群主从切换是依靠zookeeper的选举机制,而zookeeper的选举制度是DFSZKFailoverController进程实现,而且必须...

    主节点node1,从节点node2,集群启动后node1 Active,node2 Standby,通过在node1上执行hadoop-daemon.sh stop namenode来使node2切换为Active。
    发现切换失败(之前一直是这样子做的),集群主从切换是依靠zookeeper的选举机制,而zookeeper的选举制度是DFSZKFailoverController进程实现,而且必须主从节点的DFSZKFailoverController进程都打开,查看我的机器,发现node2的DFSZKFailoverController没打开,通过hadoop-daemon.sh start zkfc打开即可。

    展开全文
  • 配置完成之后 1.首先需要启动journalNodehdfs --daemon start ...2.执行hadoop namenode -format 从随意的一个namenode 节点执行 随后将namenode 中的数据拷贝到另外的一个节点。 执行start-all.sh 3.发现两个节点...

    HA简介

    在hadoop 2.0之前,hadoop 的集群都是单个namenode 节点,这样,一旦任意一个namenode 挂掉。都会导致该集群废掉。

    硬件前提

    JournalNode machines - 由于JournalNode 是很轻量级的, 所以这个程序一般和其他的程序一起运行, 例如NameNodes, JobTracker, YARN ResourceManager. 注意: 最少得有3台, 建议添加奇数个QJN,例如3,5,.).系统最多可以忍受 (N - 1) / 2 个节点挂掉,N表示总共的节点数

    注意,在HA集群中。StandByNamenode 同时扮演着checkpoints namespace 的共给你。所以,你也就没有必要去开启SecondaryNamenode了。

    配置全景

    在这里插入图片描述

    进行配置

    配置所在的git 仓库地址。
    https://gitee.com/blueboz/hadoopconfig

    配置完成之后

    1.首先需要启动journalNodehdfs --daemon start journalnode

    在这里插入图片描述
    使用netstat -nltp 查看端口占用,发现端口确实占用了。
    在这里插入图片描述
    访问界面
    在这里插入图片描述

    2.执行hadoop namenode -format

    从随意的一个namenode 节点执行
    随后将namenode 中的数据拷贝到另外的一个节点。

    执行start-all.sh

    3.发现两个节点都是standby ,这是因为我们还没有配置好自动切换哦,这时候,我们需要自己使用命令去切换

    官方为我们提供了这个命令去切换

    用法:haadmin
        [-transitionToActive <serviceId>]
        [-transitionToStandby <serviceId>]
        [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]
        [-getServiceState <serviceId>]
        [-getAllServiceState]
        [-checkHealth <serviceId>]
        [-help <command>]
    

    执行了如下的命令之后,便可以切换成主节点。
    ./hdfs haadmin -ns ns1 -transitionToActive nn1

    在这里插入图片描述
    这时候,如果我们再次执行主从节点的切换,会失败,原因是已经有了一个节点是主节点,我们此时需要-transitionToStandby 这个命令帮我们先把主节点切换成为备用节点,之后,才能顺利的切换为主节点。
    在这里插入图片描述
    **更简单 的命令 **

    这个命令意思是,将nn1主节点切换到nn2
    ./hdfs haadmin -failover nn1 nn2
    注意,在使用联邦的时候由于具有不同的nameserice ,所以在执行上面的命令的 时候,还需要设置参数[-ns <nameserviceId>]
    在这里插入图片描述
    查看指定namenode的状态,在非联邦的情况下,可以只使用serviceId.
    在这里插入图片描述
    查看所有节点的状态,
    在这里插入图片描述

    关于负载均衡
    可以尝试访问http://namenode地址:9870/isActive进行节点的状态判断的操作!结果情况如下图片
    在这里插入图片描述
    在这里插入图片描述

    如何自动切换

    从目前的现象来看,他是没有办法帮我们自动的切换主从节点的
    自动切换,我们需要为hdfs添加项配置。

    1. Zookeeper Quorum
    2. ZkFailOverController(ZKFC)

    失败侦测如何侦测服务是否挂掉?依赖zookeeper是个好方法,利用每一个namenode 注册到zk上,一旦服务器崩掉,注册到zk上的信息将会消失。
    主namenode选举zookeeper独占锁?

    ZKFC(ZKFailoverController )这是一个zookeeper客户端,监控namenode状态,每一个namenode 需要跑一个zkfc,其作用有:
    健康监控通过ping 本机的namenode等监控其状态,并且可以修改节点的状态
    zk session监控当本地的nn是正常运行

    配置信息

    <!--hdfs-site.xml -->
    
     <property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
     </property>
    <!--core-site.xml-->
    
     <property>
       <name>ha.zookeeper.quorum</name>
       <value>zk1.example.com:2181,zk2.example.com:2181,zk3.example.com:2181</value>
     </property>
    

    HADOOP_HOME/bin/hdfs zkfc -formatZK
    HADOOP_HOME/bin/hdfs --daemon start zkfc

    异常处理

    java.lang.RuntimeException: Mismatched address stored in ZK for NameNode at /172.17.0.3:8020: Stored protobuf was nameserviceId: "ns1"
    namenodeId: "nn2"
    hostname: "0e0bf432c069"
    port: 8020
    zkfcPort: 8019
    , address from our own configuration for this NameNode was /172.17.0.3:8020
    

    上面的异常信息是,zk存储的hostname与我们的namenode 不一致导致的,因为zk中只存储域名,而在我们当前主机是ping不同对应的主机,故而出现此错误。解决方法是在/etc/hosts文件中添加所有主机的映射信息。

    从下面的图中,虽然我们节点切换成功了,但是出现了一个意外的错误,就是sshfence错误,在于,其使用fuser命令的时候失败了。这个是其内置的命令,原因是我们并没有fuser程序的
    在这里插入图片描述

    展开全文
  • hadoopNameNode主从切换命令

    千次阅读 2019-05-23 14:41:07
    主从切换:sudo -iu hdfs /homebin/hdfs haadmin -ns wa-failover r1 r2(意思是将active从r1切换为r2)

    主从切换:sudo -iu hdfs /homebin/hdfs haadmin -ns wa -failover r1 r2(意思是将active从r1切换为r2)

     

    展开全文
  • HDFS主从切换预警

    2021-06-10 01:01:41
    HDFS主从切换预警自定义shell脚本 1#!/bin/bash 2#定义空变量 3NN1_HOSTNAME="" 4NN2_HOSTNAME=""...

    HDFS主从切换预警

    1. 自定义shell脚本

     1#!/bin/bash
     2#定义空变量
     3NN1_HOSTNAME=""
     4NN2_HOSTNAME=""
     5NN1_SERVICEID=""
     6NN2_SERVICEID=""
     7NN1_SERVICESTATE=""
     8NN2_SERVICESTATE=""
     9
    10#设置需要发送邮件的邮箱
    11EMAIL=1124009143@qq.com     
    12
    13#配置hadoop命令的目录
    14CDH_BIN_HOME=/home/hadoop/app/hadoop/bin
    15
    16#查看集群的nameservices及namenode_serviceids
    17ha_name=$(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.nameservices)
    18namenode_serviceids=$(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.ha.namenodes.${ha_name})
    19
    20#通过for循环,将节点名称赋值到对应的变量中
    21for node in $(echo ${namenode_serviceids//,/ }); do
    22    state=$(${CDH_BIN_HOME}/hdfs haadmin -getServiceState $node)
    23
    24#如果节点状态为active,就将节点名称赋值到NN1_SERVICEID,节点状态赋值到NN1_SERVICESTATE,以及对应active节点的主机名NN1_HOSTNAME
    25    if [ "$state" == "active" ]; then
    26        NN1_SERVICEID="${node}"  
    27        NN1_SERVICESTATE="${state}" 
    28        NN1_HOSTNAME=`echo $(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.namenode.rpc-address.${ha_name}.${node}) | awk -F ':' '{print $1}'`
    29
    30    elif [ "$state" == "standby" ]; then
    31        NN2_SERVICEID="${node}"
    32        NN2_SERVICESTATE="${state}"
    33        NN2_HOSTNAME=`echo $(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.namenode.rpc-address.${ha_name}.${node}) | awk -F ':' '{print $1}'`
    34        #echo "${NN2_HOSTNAME} : ${NN2_SERVICEID} : ${NN2_SERVICESTATE}"
    35    else
    36        echo "hdfs haadmin -getServiceState $node: unkown"
    37    fi
    38
    39done
    40
    41
    42echo "                                                                "
    43echo "Hostname        Namenode_Serviceid      Namenode_State"
    44echo "${NN1_HOSTNAME}        ${NN1_SERVICEID}       ${NN1_SERVICESTATE}"
    45echo "${NN2_HOSTNAME}        ${NN2_SERVICEID}       ${NN2_SERVICESTATE}"
    46
    47#将节点信息保存到HDFS_HA.log
    48#save current NN1/2_HOSTNAME state
    49echo "${NN1_HOSTNAME}           ${NN1_SERVICEID}    ${NN1_SERVICESTATE}" > HDFS_HA.log
    50echo "${NN2_HOSTNAME}           ${NN2_SERVICEID}        ${NN2_SERVICESTATE}" >> HDFS_HA.log
    51
    52#如果不存在HDFS_HA_LAST.log文件,就会跳过if判断,直接执行最后一步。
    53#如果文件存在,会将当前active节点的namenode_serviceids跟HDFS_HA_LAST.log文件中的active进行比较。
    54if [ -f HDFS_HA_LAST.log ];then
    55            HISTORYHOSTNAME=`cat HDFS_HA_LAST.log| awk '{print $1}' | head -n 1`
    56              #如果名称不一致,则会发送邮件到我们的邮箱
    57            if [ "$HISTORYHOSTNAME" != "${NN1_HOSTNAME}"  ];then
    58                echo "send a mail"
    59                echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check namenode log." | mail \
    60                -r "From: alertAdmin <1124009143@qq.com>" \
    61                -s "Warn: CDH HDFS HA Failover!." ${EMAIL}
    62
    63        fi
    64
    65fi
    66
    67cat HDFS_HA.log > HDFS_HA_LAST.log
    
    1. 执行get_hdfs_ha_state.sh脚本,可以看到保存的日志文件

    1[hadoop@ruozedata001 shell]$ cat HDFS_HA_LAST.log 
    2ruozedata001           nn1    active
    3ruozedata002           nn2        standby
    
    1. 当我们通过手工模拟节点切换的效果

    1[hadoop@ruozedata001 shell]$ hdfs haadmin -failover nn1 nn2
    2Failover to NameNode at ruozedata002/172.16.69.174:8020 successful
    
    1. 再执行脚本,会发现系统已经发送邮件到我们邮箱

     1[hadoop@ruozedata001 shell]$ sh get_hdfs_ha_state.sh 
     2
     3Hostname        Namenode_Serviceid      Namenode_State
     4ruozedata002        nn2     active
     5ruozedata001        nn1     standby
     6send a mail
     7[hadoop@ruozedata001 shell]$ cat HDFS_HA.log 
     8ruozedata002           nn2    active
     9ruozedata001           nn1        standby
    10[hadoop@ruozedata001 shell]$ cat HDFS_HA_LAST.log 
    11ruozedata002           nn2    active
    12ruozedata001           nn1        standby
    
    识别 下方二 维码 ,即可关注公众号获取最新大厂技术

    展开全文
  • 1.redis的主从准备 192.168.81.132(hadoop1) 主 192.168.81.130(hadoop2)从 2.heartbeat安装(主从都需要) 二、配置 1.Master配置 cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/cp /usr/share/doc/...
  • Brain Split 事故 时间先后顺序: ResourceManager同...2018-10-19 09:17:49,981 INFO org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore: Error storing info for AMRMTokenSecretMana...
  • hadoop namenode 切换指令

    2021-06-10 09:27:56
    查看nn1的状态 hdfs haadmin -getServiceState nn1 将nn1强制转换为Active hdfs haadmin -transitionToActive --forcemanual nn1 将nn2强制转换为standby hdfs haadmin -transitionToStandby --forcemanual nn2
  • hadoop namenode切换

    2015-10-08 19:48:51
    hdfs haadmin -transitionToActive --forcemanual nn1
  • 首先我们要知道,在NameNode中有三种数据的形式: 内存元数据:内存中有一份完整的元数据] 磁盘元数据镜像文件FSImage:磁盘有一个"准完整"的元数据镜像文件 数据操作日志文件edit:用于衔接内存metadata和...
  • 最近又机会接触hadoop,顺便分享一下同事的记录 一、主服务器设置 ...3.切换hadoop登录 #su - hadoop 4.解压hadoop压缩包 #tar zxvf hadoop-1.0.3.tar.gz 5.设置目录权限 #c
  • 主从切换
  • Hadoop入门——初识Hadoop

    万次阅读 多人点赞 2018-07-18 13:55:59
    Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、...
  • hadoop集群中一般有两个namenode,一个处于active激活状态,另一个处于StandBy状态,Active状态的NameNode负责集群中所有的客户端操作,这么设置的目的,其实HDFS底层的机制是有关系的,同一时刻一个文件,只允许一...
  • hadoop2 resourcemanager 主备切换

    千次阅读 2015-10-05 18:23:55
    Hadoop主备查询和切换 (1)主备查询 hdfs haadmin -getServiceState nn1 yarn rmadmin -getServiceState rm1  (2)主备切换Hadoop的各种HA中,有个隐藏属性是很多人不知道的,就是强制切换,...
  • Hadoop集群NameNode强制切换

    千次阅读 2017-05-13 12:25:28
    NameNode由standby转化为active [root@master ~]# yarn rmadmin -transitionToActive --forcemanual rm1
  • hadoop

    2018-11-07 11:59:33
    • # hadoop 概述 • 实战1:部署Hadoop高性能集群 Hadoop是什么 Hadoop是Lucene创始人Doug Cutting,根据Google的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统,其中包含MapReduce程序...
  • hadoop namenode ha–手动切换 在参考本手册前请确保Hadoop中HDFS组件已经成功部署并正常运行,同时系统基本环境完备,包括ssh免密码登录、/etc/hosts等。 假设目前NameNode在服务器namenode1上运行,服务器...
  • 搭建 Hadoop 分布式存储高性能集群

    万次阅读 2021-07-14 08:06:52
    hadoop
  • Hadoop

    千次阅读 2020-01-08 16:32:15
    Hadoop大数据生态系统 实验教程 第1章 欢迎来到大数据的世界 1.1 拥抱大数据 当今的社会,是一个信息大爆炸的社会,社会在高速发展,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大量的数据在...
  • 从零搭建生产Hadoop集群(六)——MySQL主备同步与故障切换一、概述二、主备同步配置步骤1.关闭相关服务2.主备库配置同步账号3.导出主库全部数据4.导入备库完整数据5.更新主从mysql配置文件/etc/my.cn并重启主备...
  • 完全分布模式,集群环境,常用 Hadoop 主从节点分解: 二.安装环境 1.单机模式,一台主机,172.25.22.10 2.伪分布模式,一台主机,172.25.22.11 3.完全分布模式,三台主机,172.25.22.10 11 12 软件包:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,484
精华内容 2,193
关键字:

hadoop主从切换