一个知乎上的问题: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动态增加和删除节点的更多相关文章

  1. Redis集群动态增加和删除节点

    一.添加节点 1.首先将需要添加的节点启动: 这里启动redis6383.conf和redis6393.conf两个节点 查看原有节点:           3个主节点所对应的哈希槽(hash slo ...

  2. Bootstrap treeview增加或者删除节点

    参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:http://blog.csdn.ne ...

  3. jQuery实现表格行的动态增加与删除(改进版)

    之前写过一个简单的利用jQuery实现表格行的动态增加与删除的例子,有些人评论说"如果表格中是input元素,那么删除后的东西都将自动替换,这样应该是有问题的,建议楼主改进!",故 ...

  4. jquery动态增加或删除tr和td【实际项目】

    难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每 ...

  5. adoop集群动态添加和删除节点

    hadoop集群动态添加和删除节点说明 上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除. 首先将启动四台机器(一主三从) ...

  6. hadoop2.7节点的动态增加与删除

    参考这里: https://blog.csdn.net/Mark_LQ/article/details/53393081

  7. jQuery实现表格行的动态增加与删除 序号 从 1开始排列

    <table id="tab" border="1" width="60%" align="center" sty ...

  8. jquery实现表格行的动态增加和删除

    $("#Addmaterial").click(function () {//Addmaterial是增加按钮的ID $("#tab tr").attr(&qu ...

  9. jQuery实现表格行的动态增加与删除

    删除之前删除2行后: 1<script> 8 $(document).ready(function(){ 9 //<tr/>居中 10 $("#tab tr" ...

随机推荐

  1. C# - 缓存OutputCache(一)基础配置

    本文是通过网上&个人总结的 1. 介绍 OutputCache输出缓存是复制ASP.NET页面,保存在内存的机制.这种行为有助于提高性能,通过返回的缓存达到网页及时响应的目的,减少客户机器需要 ...

  2. CATransition自定义转场动画

    我们可以通过CATransiton来自定义一些漂亮的转场动画, CATransition继承自CAAnimation, 所以用法跟CAAnimation差不多 先直接上一个代码: #import &q ...

  3. Unicode和UTF-8的关系

    Unicode和UTF-8都是表示编码,这个我一直都知道,但是这两个实际上是干什么用的,到底是怎么编码的,为什么有了Unicode还要UTF-8,它们之间有什么联系又有什么区别呢?这个问题一直困扰着我 ...

  4. JavaScript权威设计--事件处理介绍(简要学习笔记十七)

    1.事件相关概念 事件类型:一个用来说明发生什么类型事件的字符串 事件目标:是发生的事件或与之相关的对象. 事件处理程序(事件监听程序):是处理货响应事件的函数. 事件对象:是与特定事件相关并且包含有 ...

  5. Android消息传递之Handler消息机制

    前言: 无论是现在所做的项目还是以前的项目中,都会遇见线程之间通信.组件之间通信,目前统一采用EventBus来做处理,在总结学习EventBus之前,觉得还是需要学习总结一下最初的实现方式,也算是不 ...

  6. mysql大小写敏感与校对规则

    大家在使用mysql过程中,可能会遇到类似一下的问题: root@chuck 07:42:00>select * from test where c1 like 'ab%';  +-----+  ...

  7. 移动端自适应之——rem与font-size

    需求:在不同的移动终端设备中实现,UI设计稿的等比例适配. 方案:布局排版都用rem做单位,然后不同宽度的屏,js动态计算根节点的font-size. 假设设计稿是宽750px来做的,书写css方便计 ...

  8. 3.C#WinForm基础累加器

    功能:实现累加计算. 知识点: bool int.TryParse(string s,out int result)(+1重载) 将数字的字符串形式转换为它的等效的32位有效的有符号整数,一个指示操作 ...

  9. 响应式图片菜单式轮播,兼容手机,平板,PC

    昨天在给自己用bootstrap写一个响应式主业模版时想用一个图片轮播js,看到了bootstrap里面的unslider.js,只有1.7k,很小,很兴奋,但使用到最后发现不兼容手机,当分辨率变化的 ...

  10. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...