Hadoop运营急救方案

    技术2022-05-19  21

     

    引子: 这段时间折腾的都是hadoop和lucene,总结了hadoop在运营过程中出现问题时的解决方案,请大家指教!

    HDFS(0.20.2)运营中急救方案

    1           Namenode 挂掉(secondarynamenode无影响)

    如果Namenode挂掉,如果能立即起来通过,start-dfs.sh 能够重新起来则可以正常使用。否则按照以下操作。下面所有操作前提是有完整的secondarynamenode

     

    1)    在非secondarynamenode服务器中选择datanode作为namenode。(目前在正式文档中没有发现,建议采用第二种,但在测试中没发现问题)

     

    a)         Kill掉所有服务。

    b)        修改新namenode服务器 配置文件:core-site.xmlmastersslaves等相关文件。

    c)        修改hosts文件

    d)        重新配置各节点 ssh ,使新namenode到其他datanode 正常无密码ssh登陆

    e)         将运行secondarynamedode机器上的hadoop.tmp.dir/dfs/namesecondary 拷贝到新namenode服务器hadoop.tmp.dir/dfs目录。

    f)         namesecondary改名为name

    g)        bin/start-dfs.sh启动hdfs

    2)    在非secondarynamenode服务器中选择datanode作为namenode。通过导入以前的检查点来恢复namenode

     

    a)         Kill掉所有服务。

    b)        修改新namenode服务器 配置文件:core-site.xmlmastersslaves等相关文件。

    c)        修改hosts文件

    d)        重新配置各节点 ssh ,使新namenode到其他datanode 正常无密码ssh登陆

    e)         namenode服务器core-site.xml中配置fs.checkpoint.dir(默认是在$hadoop.tmp.dir/dfs/ namesecondary.

    <property>

      <name>fs.checkpoint.dir</name>

      <value>/home/hadoop/hadoop-data/dfs/namesecondary</value>

    </property>

    f)         将运行secondarynamedode机器上的hadoop.tmp.dir/dfs/namesecondary 拷贝到namenode服务器fs.checkpoint.dir目录.

    g)        执行bin/hadoop namenode –importCheckpoint 导入检查点。

    h)        执行bin/start-dfs.sh 启动dfs.

     

     

     

     

    2           Datanode挂掉(不带secondarynamenode

    1)      原服务器完全坏掉,起不来,只能引入新的datanode

                               i.      从其他datanode拷贝hadoop所有配置到新服务器

                             ii.      设置hosts,将所有datanodes namenode 设置hosts

                            iii.      设置ssh无密码登陆,并测试

                           iv.      namenode conf slaves中配置新加datanode

                             v.      在新加datanode上通过bin/hadoop-daemon.sh start datanode  启动该新datanode

    2)         原服务器可以立即起来

                         i.      因为namenode slaves有该datanode,可以直接在namenode中执行bin/start-dfs.sh 启动

                       ii.      也可以在该服务器 通过bin/hadoop-daemon.sh start datanode启动

    3           Datanode挂掉(带secondarynamenode

    1)    Namenode正常运行情况下,如果该datanode可以立即投入使用,则直接在namenode中执行bin/start-dfs.sh 启动

    2)    Namenode正常运行情况下,如果该datanode无法使用,则考虑新增datanode,并配置secondarynamenode

    在新节点 配置文件hdfs-site.xml中 配置:

    <property>

       <name>dfs.http.address</name>

       <value>netease-namenode-test:50070</value>

      </property>

    该配置在namenode使用默认即可。如果添加上通过外网访问netease-namenode-test:50070可能会由于网段不同导致访问不到。

     

    使secondarynamenode能够post请求到namenode

    然后在namenode masters中增加 新的secondarynamenode 并配置hosts

    使用bin/start-dfs.sh 启动。

     


    最新回复(0)