当HDFS现有集群不能够满足业务需求的时候,需要在不影响现有HDFS集群运行的情况下,动态扩容现有HDFS集群。
操作步骤:
1> 安装一台CentOS Linux服务器
2> 修改计算机名称
命令:vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop1
GATEWAY=192.168.248.1
3> 设置IP修改网络配置
命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:E6:CF:B7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="5cd683f8-d674-46e1-9df7-db3e21fb76c8"
IPADDR="192.168.248.100"
GATEWAY="192.168.248.1"
DNS1="255.255.255.0"
4> 配置待扩容机器上的域名映射
命令:vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.248.100 hadoop
192.168.248.101 hadoop1
192.168.248.102 hadoop2192.168.248.103 hadoop3
5> 彻底关闭防火墙
命令:chkconfig iptables off
6> 重启网络服务
命令:service network restart
7> 重启电脑
命令:reboot
8> 修改计算机域名映射
先修改namenode机器上的域名映射,将新加节点添加进去。
命令:vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.248.100 hadoop
192.168.248.101 hadoop1
192.168.248.102 hadoop2192.168.248.103 hadoop3
拷贝这个文件到现有的datanode各节点:
命令:scp -r /etc/hosts hadoop1:$PWD
命令:scp -r /etc/hosts hadoop2:$PWD
命令:scp -r /etc/hosts hadoop3:$PWD
9> 修改namenode机器上的 slaves 文件(以后集群重启时,能够识别到新扩节点)
命令:vi /opt/mysoft/hadoop/etc/hadoop/slaves
hadoop
hadoop1
hadoop2
hadoop3
把修改后的slaves文件复制到其他节点计算机上
命令: scp -r /opt/mysoft/hadoop/etc/hadoop/slaves hadoop1:/opt/mysoft/hadoop/etc/hadoop/
命令: scp -r /opt/mysoft/hadoop/etc/hadoop/slaves hadoop2:/opt/mysoft/hadoop/etc/hadoop/
命令: scp -r /opt/mysoft/hadoop/etc/hadoop/slaves hadoop3:/opt/mysoft/hadoop/etc/hadoop/
10> 添加namenode节点与新加节点之间的免密SSH登录
先在待扩容机器生成密钥
命令:ssh-keygen -t rsa 一路敲回车
查看生成的文件:
命令:cd /root/.ssh
命令:cat id_rsa.pub >>authorized_keys 拷贝本地公钥到生成的公钥文件集中。
验证:ssh localhost 和 ssh hadoop3
在namenode机器上将公钥拷贝到待扩容机器的公钥文件集中,实现namenode到datanode的免SSH登陆
在namenode机器上执行:
命令:ssh-copy-id -i hadoop3
在namenode机器上操作:
ssh hadoop3 //初次要输入密码,后续免密
在datanode机器上将公钥拷贝到namenode的公钥文件集中,实待扩容机器datanode到namenode的免SSH登陆
在待扩容机器上执行
命令:ssh-copy-id -i hadoop
在待扩容机器上验证到namenode机器的免ssh登陆
ssh hadoop //初次要输入密码,后续免密
11> 拷贝namenode上的JDK,hadoop包,profiles等到待扩容机器上
命令:scp -r jdk hadoop3:$PWD
命令:scp -r hadoop hadoop3:$PWD
命令:scp /etc/profile hadoop3:$PWD
在hadoop3机器上执行如下操作使设置生效:
命令:source /etc/profile
进入在hadoop3待扩容机器,进行如下操作,删除原有的日志和临时文件:
命令:rm –rf logs/*
命令:rm -rf tmp/*
12> 在运行着的HDFS集群中,在扩容机器上直接启动datanode进程
命令:hadoop-daemon.sh start datanode
13> 检验动态扩容是否成功
webUI访问:http://192.168.248.100:50070/dfshealth.html#tab-datanode
14> 通过集群的方式关闭重启服务
命令:stop-all.sh
命令:start-all.sh