zoukankan      html  css  js  c++  java
  • Hadoop新增和删除节点

    #新增节点

    1.安装lunix,和以前一样的版本
    2.初始化系统环境
     2.1.设置静态ip

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    //增加 
    #Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
    DEVICE=eth0
    #BOOTPROTO=dhcp 
    # add 
    BOOTPROTO=static
    ONBOOT=yes
    # add 
    IPADDR=192.168.119.134
    HWADDR=00:0c:29:59:df:84
    
    //重启网络文件:service network restart

     2.2.安装jdk 配置Java 环境变量
     2.3.关闭防火墙

    service iptables stop
    chkconfig iptables off

    3.配置ssh登陆

    在新增节点:cd root 
    mkdir .ssh //新建.ssh目录
    在master节点:cd ~/.ssh scp authorized_keys 新增节点IP:/root/.ssh/authorized_keys //复制免密码登陆到新增节点

    4.修改hosts文件

    在master节点:vi /etc/hosts
    //增加 新增节点IP h2slave3
    //复制到其他DataNode节点
    scp /etc/hosts h2slave1:/etc/hosts scp /etc/hosts h2slave2:/etc/hosts scp /etc/hosts h2slave3:/etc/hosts

    5.复制hadoop2.2到新增节点(在master节点操作)

    scp -r /home/bigdata/hadoop2.2 h2slave3:/home/bigdata/ 
    //然后切换到新增节点 配置hadoop的环境变量
    
    //在master节点修改
    /home/bigdata/hadoop2.2/etc/hadoop/slaves //新增 新增节点的IP
    //然后复制到其他DataNode
    scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave1:/home/bigdata/hadoop2.2/etc/hadoop/slaves scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave2:/home/bigdata/hadoop2.2/etc/hadoop/slaves scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave3:/home/bigdata/hadoop2.2/etc/hadoop/slaves

      5.1. 添加DataNode 

    //对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群
    //在新增的节点上,运行 sbin/hadoop-daemon.sh start datanode
    //在namenode节点刷新datanode, hdfs dfsadmin
    -refreshNodes
    //然后在namenode
    查看集群情况,通过 hdfs dfsadmin -report
    //也可以通过NameNode50070端口查看活动的DataNode节点数
     

      5.2.平衡DataNode节点

    //在Master节点 cd /home/bigdata/hadoop2.2/sbin

    //对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M
    hdfs dfsadmin -setBalancerBandWidth 67108864

    //默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5% start
    -balancer.sh -threshold 5

      5.3.添加NodeManager 

    //由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群
    //在新增节点,运行 sbin/yarn-daemon.sh start nodemanager
    
    //在ResourceManager,通过 yarn node -list 查看集群情况 

    遇到问题:在复制hadoop文件夹时我复制的datanode的hadoop,最终导致,新节点与被复制节点的datanodeUuid一样(位置:{HADOOPHOME}/tmp/dfs/name/current/VERSION文件)这样会导致,被复制节点和新节点的冲突,被复制节点和新节点在web查看时,或者被复制节点出现,或者新节点出现(但均为“死节点”)
    解决办法一定要从NameNode中复制hadoop-2.2.0文件夹

    #删除节点

    //极端不建议直接在slave节点通过:hadoop-daemon.sh stop datanode 
    命令关掉datanode,这会导致hdfs中出现missing block

    在hadoop0上修改conf/hdfs-site.xml文件

    <property>
      <!--dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个-->   <name>dfs.hosts.exclude</name>   <value>/usr/local/hadoop/hadoop-2.2.0/etc/hadoop/excludes</value> </property>

    1. 在master上创建并修改excludes文件,添加需要删除节点的IP
    2. 在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes

    此时在Web UI上就可以看到该节点变为Decommissioning状态,过一会就变为Dead了
    也可以通过:hadoop dfsadmin -report 命令查看

    3. 在slave上关闭datanode进程(非必须):hadoop-daemon.sh stop datanode  

    #重新加入删除的节点

    1.在master的excludes文件中删除相应节点IP
    2.在slave上重启datanode进程:hadoop-daemon.sh start datanode
    3.在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes

  • 相关阅读:
    etcd扩展使用
    etcd注册服务
    net core微服务构建方案
    一个简化的插件框架c#
    NSQ消息队列
    c#一些处理解决方案(组件,库)
    c#网络传输
    c#的传输组件dotnetty
    c#网络加密传输
    C++ Boost在Windows和Linux下的编译安装
  • 原文地址:https://www.cnblogs.com/skyl/p/4854654.html
Copyright © 2011-2022 走看看