hdfs以及hbase动态增加和删除节点
一个知乎上的问题:Hbase的Region server和hadoop的datanode是否可以部署在一台服务器上?如果是的话,二者是否是一对一的关系?
部署在同一台服务器上,可以减少数据跨网络传输的流量。 但不是一对一对的关系,首先,数据还hdfs中保存N份,默认是三分,也就是说数据会分布在三个datanode上,即使regionserver上只保存一个region,它也可以与三个datanode交互,更何况,一台regionserver可以保存多个region.
参考:https://www.zhihu.com/question/20376001/answer/15602027
然后来看一下关于节点的动态增加与动态删除问题
1、hdfs增加datanode
1> 准备新节点的操作系统,安装好需要的软件,实现ssh无密码登录
2> 各个节点的配置文件需要更改
$HBASE_HOME/conf/regionservers
$HADOOP_HOME/etc/hadoop/slaves
/etc/hosts
3> 在新节点执行以下命令
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
4> 刷新一下
yarn rmadmin -refreshNodes
hdfs dfsadmin -refreshNodes
# 查看状态
hdfs dfsadmin -report
5> 设置带宽,配置均衡器balancer,一般不在主节点上运行,以避免影响业务,可以有专门的balancer节点
hdfs dfsadmin -setBalancerBandwidth
# 如果某个datanode的磁盘里用率比平均水平高出5%,Blocks向其他低于平均水平的datanode中传送
start-balancer.sh -threshold
说明:
随时时间推移,各个datanode上的块分布来越来越不均衡,这将降低MR的本地性,导致部分datanode相对更加繁忙。
balancer是一个hadoop守护进程,它将块从忙碌的datanode移动相对空闲的datanode,同时坚持块复本放置策略,将复本分散到不同的机器、机架。
balancer会促使每个datanode的使用率与整个集群的使用率接近,这个“接近”是通过-threashold参数指定的,默认是10%。
不同节点之间复制数据的带宽是受限的,默认是1MB/s,可以通过hdfs-site.xml文件中的dfs.balance.bandwithPerSec属性指定(单位是字节)。
建议定期执行均衡器,如每天或者每周。
2、hdfs删除datanode
1> $HADOOP_HOME/etc/hadoop/excludes文件中添加需删除的主机名,一般在执行命令的主节点上添加即可
2> 刷新一下
yarn rmadmin -refreshNodes
hdfs dfsadmin -refreshNodes
3> 删除后修正以下配置文件,
$HBASE_HOME/conf/regionservers
$HADOOP_HOME/etc/hadoop/slaves
/etc/hosts
注意:关于hadoop集群删除数据节点一直处于Decommission in progress状态问题
在小集群中(例如3台机器),如果datanode数据量小于文件的备份数设置(默认是3),有可能会出现这样的情况,被数据节点一直处于Decommission in progress状态。
这个是hadoop的一个未处理的问题,因为大的集群一般不会出现这种情况,即datanode数据量小于文件的备份数设置
解决方案是:尝试将文件备份数设置为1或者2,然后尝试从三台datanode中exclude掉一台
以下是修改已有的副本数量的命令,一般不建议使用,而应提前在配置文件中进行优化,以避免出现此类问题
hdfs dfs -setrep -w 2 -R /文件
3、hbase增加regionserver节点
1> 执行以下命令启动regionserver
hbase-daemon.sh start regionserver
2> 在新启动的节点上
打开hbase shell,如下设置:
balance_switch true
4、hbase删除regionserver节点
1> 执行命令
graceful_stop.sh data1
2> 由于会关闭hbase的balancer,因此需要在其他regionserver节点上
打开hbase shell,检查hbase状态
同时重新设置:
balance_switch true
此外,注意执行的顺序,如果一个datanodet同时作为regionserver,先删除regionserver,再删除datanode,反之,新增的节点,先设为datanode,再设为regionserver
。
hdfs以及hbase动态增加和删除节点的更多相关文章
- Redis集群动态增加和删除节点
一.添加节点 1.首先将需要添加的节点启动: 这里启动redis6383.conf和redis6393.conf两个节点 查看原有节点: 3个主节点所对应的哈希槽(hash slo ...
- Bootstrap treeview增加或者删除节点
参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:http://blog.csdn.ne ...
- jQuery实现表格行的动态增加与删除(改进版)
之前写过一个简单的利用jQuery实现表格行的动态增加与删除的例子,有些人评论说"如果表格中是input元素,那么删除后的东西都将自动替换,这样应该是有问题的,建议楼主改进!",故 ...
- jquery动态增加或删除tr和td【实际项目】
难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每 ...
- adoop集群动态添加和删除节点
hadoop集群动态添加和删除节点说明 上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除. 首先将启动四台机器(一主三从) ...
- hadoop2.7节点的动态增加与删除
参考这里: https://blog.csdn.net/Mark_LQ/article/details/53393081
- jQuery实现表格行的动态增加与删除 序号 从 1开始排列
<table id="tab" border="1" width="60%" align="center" sty ...
- jquery实现表格行的动态增加和删除
$("#Addmaterial").click(function () {//Addmaterial是增加按钮的ID $("#tab tr").attr(&qu ...
- jQuery实现表格行的动态增加与删除
删除之前删除2行后: 1<script> 8 $(document).ready(function(){ 9 //<tr/>居中 10 $("#tab tr" ...
随机推荐
- Javascript之函数模型
分析: 对于js自定义函数,函数体的内容大致可抽象为:变量(局部变量,由var关键字定义,全局变量)和函数(一般函数,匿名函数,闭包函数). function SelfDefineFunc() { v ...
- Function Set in OPEN CASCADE
Function Set in OPEN CASCADE eryar@163.com Abstract. The common math algorithms library provides a C ...
- JavaScript之单例实战
一.概述 所谓单例模式,顾名思义即一个类只有一个实例. 所以,当我们创建一个实例时,就必须判断其是否已经存在了这个实例,如果已经存在了这个实例,那么就返回这个已经存在的实例,无需再创建一个(单例模式嘛 ...
- Log4net入门(控制台篇)
Log4net是Apache公司的log4j™的.NET版本,用于帮助.NET开发人员将日志信息输出到各种不同的输出源(Appender),常见的输出源包括控制台.日志文件和数据库等.本篇主要讨论如何 ...
- ASP.NET 5 WebApi 返回 HttpResponseMessage
首先,ASP.NET 5 没有了 MVC 和 WebApi 的区分,都属于 ASP.NET 5,从 Controller 的继承就可以看出,原来 ASP.NET WebApi 2 ValuesCont ...
- 挑子学习笔记:对数似然距离(Log-Likelihood Distance)
转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/log-likelihood_distance.html 本文是“挑子”在学习对数似然距离过程中的笔记摘录,文 ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- User Growth Using Deeplink. (part1)
转载请注明来源 http://www.cnblogs.com/hucn/p/5917924.html 活跃人数是衡量app一项关键指标, dau, mau, 有了流量才能给业务发展提供养分和空间. a ...
- domReady的实现
我们都知道JQ的 $(document).ready(fn) 方法.可以在页面准备就绪后才执行脚本,该方法相比传统的window.onload 事件,它的优势体现于onload事件是需要等到页面中所有 ...
- python推荐淘宝物美价廉商品
完成的目标: 输入搜索的商品 以及 淘宝的已评价数目.店铺的商品描述(包括如实描述.服务态度.快递的5.0打分): 按要求,晒选出要求数量的结果,并按"物美价廉算法"排序后输出 思 ...