0.说明
Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点。以下就是增加的过程。
1.配置运行环境
- 安装与master和其他slave相同的java环境,jdk版本要相同。具体安装过程这里不再赘述。
- 修改新节点的ip和主机名对应关系,修改/etc/hosts配置文件,定义ip与hostname的映射。
- 关闭新节点防火墙,因为Hadoop集群是在内网环境运行,可以关闭防火墙。
- 配置新节点ssh免密码登录,使得master可以免密码登录到新节点主机。过程这里不再赘述。
2.修改集群所有节点相关配置文件
修改集群所有节点(master和所有slave)的${HADOOP_HOME}/conf/slaves文件,增加新节点ip或hostname:
新节点ip 新节点主机名
同时,集群所有节点上修改系统的/etc/hosts配置文件,增加ip与hostname的映射(和上面修改slaves相同):
新节点ip 新节点主机名
3.新节点增加Hadoop
将master(namenode)中的配置拷贝到新节点(datanode),而且新节点的Hadoop的目录路径最好是和集群的其他节点一样,便于查看和管理。这一步只要用scp拷贝即可。
切换到Hadoop用户名,然后拷贝:
scp -r /hadoop安装目录 新节点上的Hadoop用户名@新节点主机ip或主机名
这一步完成就说明新节点的安装完毕。
4.单独启动新节点
集群增加了新节点之后,不需要关闭整个集群然后重启。可以单独启动新增加的节点,实现新节点动态加入。在新节点上执行命令:
[jay@slave2 ~]# cd hadoop-1.2.1/
[jay@slave2 hadoop-1.2.1]# ./bin/hadoop-daemon.sh start datanode #启动datanode
starting datanode...
[jay@slave2 hadoop-1.2.1]# ./bin/hadoop-daemon.sh start tasktracker #启动tasktracker
starting tasktracker...
5.验证启动成功
5.1访问web UI查看集群信息
访问http://master:50070/可以看到"Live Nodes"的数量,如果增加了新节点数,说明添加成功。
5.2 执行命令查看
$ bin/hadoop dfsadmin -report
6.集群负载均衡
在master主机上面,运行start-balancer.sh进行数据负载均衡。目的是将其他节点的数据分担一些到新节点上来,看集群原来数据的多少需要一定的时间才能完成。
hadoop balancer
或者
bin/start-balancer.sh
负载均衡作用:当节点出现敀障,或新增加节点时,数据块可能分布不均匀,负载均衡可重新平衡各个datanode上数据块的分布,使得所有的节点数据和负载能处于一个相对平均的状态,从而避免由于新节点的加入而效率降低(如果不进行balance,新数据一般会被插入到新节点中)