Hadoop集群中添加datanode节点


随着业务的扩展,公司刚开始的三个节点已经不够用了,因此需要添加datanode。下面记录一下添加datanode节点的步骤:

1、在新的datanode上创建Hadoop运行的用户grid,并修改密码。并修改ip地址和绑定主机名,hosts文件,关闭新节点的防火墙。

  我用的是CentOS7的系统,因此修改静态ip地址是:vi  /etc/sysconfig/network-scripts/ifcfg-eno16777736

      然后执行 service  network  restart  重启网络。

  绑定主机名:vi  /etc/hostname ,修改成自定义的主机名即可。

  关闭防火墙:由于centos7用firewalld取代了iptables。因此关闭防火墙的命令是:

      systemctl  status  firewalld  查看防火墙的状态

      systemctl  stop  firewalld  关闭防火墙

      systemctl  disable firewalld  禁止防火墙开机启动,对应的会删除两个文件。 

  修改hosts文件:

      vi  /etc/hosts

    shutdown -r now  重启电脑。

2、 (1)在新的datanode节点上,用grid登录,创建ssh公钥:ssh-keygen -t rsa,

  (2)并对产生的公钥id_rsa.pub进行备份:cp id_rsa.pub id_rsa.pub.x  ,这里x表示新添加的节点对应的编码。

  (3)并将id_rsa.pub.x发送到主节点上。

       scp -r  id_rsa.pub.x grid@namenode_hostname:/home/grid/.ssh/

3、在主节点上,

  (1)将id_rsa.pub.x 拷贝到authorized_keys当中:cat id_rsa.pub.x >>authorized_keys

  (2)主节点将authorized_keys分发给所有的节点,包括新的datanode。

      scp -r authorized_keys  grid@datanode_hostname1:/home/grid/.ssh/

      scp -r authorized_keys  grid@datanode_hostname1:/home/grid/.ssh/

       :

       :

  (3)在主节点上,添加新的datanode的ip地址:

      vi  /etc/hosts  在该文件中添加新节点的ip地址和主机名

      然后将主节点上的hosts文件分发给所有的节点(包括新添加的datanode)。

  (4)将主节点的jdk的安装文件、hadoop的安装文件、环境变量的文件/etc/profile 分别都分发给新添加的datanode。

  (5)修改主节点上的hadoop的salves文件,添加datanode新节点的主机名。

  (6)在新添加的节点上执行 source /etc/profile

  (7)在新的节点上执行:
      hadoop-daemon.sh start datanode
      hadoop-daemon.sh start tasktracker

  (8)均衡之前的datanode的block,在新的节点上执行:
      start-balancer.sh

       这个会非常耗时
      1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
      2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
        [root@slave-004 hadoop]# start-balancer.sh -threshold 5
      3)设置balance的带宽,默认只有1M/s,修改hdfs-site.xml

        <property>
          <name>dfs.balance.bandwidthPerSec</name>
          <value>1048576</value>
        </property>

        

  (9)安全模式
    有两个方法离开这种安全模式:
    1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
        dfs.safemode.threshold.pct(缺省值0.999f)
       HDFS启动的时候,如果DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。

    2)hadoop dfsadmin -safemode leave命令强制离开
        dfsadmin -safemode value 参数value的说明:
        enter - 进入安全模式
        leave - 强制NameNode离开安全模式
        get -  返回安全模式是否开启的信息
        wait - 等待,一直到安全模式结束。

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程 

CentOS安装和配置Hadoop2.2.0 

Ubuntu 13.04上搭建Hadoop环境

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Ubuntu下Hadoop环境的配置

单机版搭建Hadoop环境图文教程详解

相关内容