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,就可以原样克隆了。

时间: 2024-12-26 15:23:39

spark、hadoop动态增减节点的相关文章

hadoop+Spark+hbase集群动态增加节点

分布式系统的一个优势就是动态可伸缩性,如果增删节点需要重启那肯定是不行的.后来研究了一下,发现的确是不需要重启集群,直接在新增的节点上分别启动以下进程即可:以hadoop.spark和hbase为例: 一.hadoop增加datanode节点 因为1.x版本和2.x版本有比较大的差异,我这里是以2.7为例.在namenode节点上,将hadoop-2.7复制到新节点上,并在新节点上删除data和logs目录中的文件. 1.增加hdfs数据节点datanode 在此节点上启动hdfs: ./sbi

Hadoop动态添加/删除节点(datanode和tacktracker)

总的来说,正确的做法是优先通过配置文件,再在具体机器上进行相应进程的启动/停止操作. 网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置. 总的来说添加/删除DataNode和TaskTracker的方法非常相似,只是操作的配置项和使用的命令有微小差异. 1. DataNode 1.0 配置文件 在master/namenode下修改配置文件conf/mapred-site.xml. 关键参数dfs.hosts和dfs.hosts.exclude. 注意:不同hadoop版本的

Spark+hadoop+mllib及相关概念与操作笔记

Spark+hadoop+mllib及相关概念与操作笔记 作者: lw 版本: 0.1 时间: 2016-07-18 1.调研相关注意事项 a) 理解调研 调研的意义在于了解当前情况,挖掘潜在的问题,解决存在的疑问,并得到相应的方案. b) 调研流程 首先明确和梳理现有的疑问是什么,要通过调研解决什么问题,然后再去做调研,发现问题,再解决问题. c) 调研成果 最终需要得到结论与方案,以及详尽的论证理由,让别人信服. d) 书写格式 版本与作者以及时间可以以表格的形式,整齐明了. 结论简洁明了,

hadoop配置名称节点HA基本流程

hadoop配置HA(NN) 配置信息参考hadoop配置名称节点HA原理 1.停止所有进程 stop-dfs.sh 2.配置hdfs-site.xml和core-site.xml 3.将s201的id_rsa发送到s205(确保两个NN能同时ssh到各个DN) 4.将s201的工作目录复制到s205 5.启动服务journalnode hadoop-daemons.sh start journalnode 6.初始化journalnode hdfs namenode -initializeSh

iOS 实现脉冲雷达以及动态增减元素 By Swift-感谢分享

Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要“落后”一些,但也无伤大雅.这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了. 最终效果: 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建基本动画 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建一个Single View Applic

Codeforces 803G Periodic RMQ Problem ST表+动态开节点线段树

思路: (我也不知道这是不是正解) ST表预处理出来原数列的两点之间的min 再搞一个动态开节点线段树 节点记录ans 和标记 lazy=-1 当前节点的ans可用  lazy=0 没被覆盖过 else 区间覆盖 push_up的时候要注意好多细节,, 数组尽量往大开 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const in

jquery动态添加节点

<1> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title&

iOS 实现脉冲雷达以及动态增减元素 By Swift

开始之前 Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要"落后"一些,但也无伤大雅.这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了. 最终效果: 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建基本动画 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建一个Single V

解决jQuery ajax动态新增节点无法触发点击事件的问题

在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="",但是这样写其实是有点low的,最好的方式还是通过给类名绑定一个click事件. 解决jQuery ajax动态新增节点无法触发事件问题的两种解决方法,为了达到更好的演示效果,假设在某个页面的body下有以下结构的代码: 1 <ul id="demo"> 2 <li c