spark、hadoop动态增减节点

之前在搭建实验环境的时候按部就班的配置好,然后就启动了。后来再一琢磨,有点不对劲。分布式系统的一个优势就是动态可伸缩性,如果增删节点需要重启那肯定是不行的。后来研究了一下,发现的确是不需要重启的。仍以spark和hadoop为例:

对于spark来说很简单,增加一个节点就是命令启动: ./sbin/start-slave.sh spark://<master>:7077 ,就完成了新节点的注册和加入集群。停止的时候是: ./sbin/stop-slave.sh。之后在master的管理端会显示这个节点已经“死掉”了。然而这条信息会一直显示到重启master为止。如果希望下次自动启动这个新节点,把这个节点名称加入到conf/slaves文件里。

对于hadoop来说略复杂一点,因为1.x版本和2.x版本有比较大的差异,不少教程说的还是1.x版本的做法,我这里是以2.7为例。

增加hdfs数据节点
在此节点上启动hdfs:./sbin/hadoop-daemon.sh start datanode(后台模式)  或./bin/hdfs datanode(控制台模式),如果希望下次自动启动,修改集群里机器的所有slaves配置文件

刷新节点信息:
./bin/hdfs dfsdmin -refreshNodes

启动后可以均衡数据,使用命令
./sbin/start-balancer.sh
卸载节点

卸载节点一般不建议直接停掉,需要先将其排除在集群之外,编辑配置文件:etc/hadoop/hdfs-core.xml

<property>  
    <name>dfs.hosts</name>  
    <value>.../etc/hadoop/datanode-allow.list</value>  
</property>  
<property>  
    <name>dfs.hosts.exclude</name>  
    <value>.../etc/hadoop/datanode-deny.list</value>  
</property> 

在datanode-deny.list中加入要卸载的节点名称

刷新节点信息:

./bin/hdfs dfsdmin -refreshNodes会看到节点变成Dead和Decommissioned状态

最后再停止节点:./sbin/hadoop-daemon.sh stop datanode

增减任务节点在2.x版本里貌似和spark一样,不用再麻烦的设置了:

启动:
./sbin/yarn-daemon.sh start nodemanager(后台模式)  或./bin/yarn nodemanager(控制台模式)

停止:
./sbin/yarn-daemon.sh stop nodemanager

题外话,以前习惯用virtualbox的 vboxmanage clonehd命令克隆磁盘在增加新虚拟机,后来发现这样的克隆是初始的硬盘状态,一旦做过snapshot,就不能把后续的状态克隆进去,这就不方便了。所以改用vboxmanage clonevm <old_vm>  --name <new_vm> --mode all,就可以原样克隆了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值