hadoop加扩容加节点是很常见的场景。网上有很多说法,可以冷加(需要重启,也叫动态加),可以热加(不需要重启,也加静态加)。个人亲测了几种方案,总结如下:
加节点不重启,风险很高。
首先来说加节点的步骤:
1.准备服务器,这里我用的是云机器,所以镜像一台以前的旧的datanode就可以了,省去了复制hadoop文件的麻烦。如果是新增机器,需要把已有的datanode节点上的hadoop文件夹copy到新的机器上。
2.配置ssh,使集群内各机器可以免密通信。
3.修改主节点的/etc/hosts文件,加入新机器的信息,并发送到各个节点。
4.修改主节点的slaves配置文件,加入新机器的信息。
5.在新的节点上,执行以下命令:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
这个时候hadoop report已经可以看到子节点的信息了,也可以开始做balancer了。但是,新增的节点上都没有MRAppMaster进程,具体的作用大家可以百度。就在这里进坑了,使用hive,执行查询是没有问题的,但是插入时会报错。后来尝试过手动启动MRAppMaster进程,无果。重启集群,一切都好了。