一个知乎上的问题: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. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

  2. Atitit osi tcp ip 对应attilax总结

    Atitit osi tcp ip 对应attilax总结 Atitit 网络摄像机又叫IP CAMERA(简称IPC)常见的协议组合 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模 ...

  3. Linux驱动学习 —— 在/sys下面创建目录示例

    有时我们需要在/sys下面创建一些目录, 下面给出了一个示例. 在加载驱动模块后, 在/sys下面会创建一个名为sysfs_demo的目录,并在其中在创建几个文件和目录. [root@tiny4412 ...

  4. PyQt4入门学习笔记(四)

    在PyQt4中的事件和信号 事件 所有的GUI应用都是事件驱动的.事件主要是来自于应用的使用者,但是像互联网连接,窗口管理器或者计时器也可以产生事件.当我们调用应用的exec_()方法时,应用就进入了 ...

  5. 常用JavaScript触发事件

    事件句柄 onclick=JavaScript:鼠标单击某个对象.3 ondblclick=JavaScript:鼠标双击某个对象.3 onmousedown=JavaScript:某个鼠标键被按下. ...

  6. GridView中显示时间日期格式问题

    以下都是GridView基本常用的日期,时间格式 形式 语法 结果 注释 数字 {0:N2} 12.36   数字 {0:N0} 13   货币 {0:c2} $12.36   货币 {0:c4} $ ...

  7. ASP.NET Core的Kestrel服务器

    原文地址----Kestrel server for ASP.NET Core By Tom Dykstra, Chris Ross, and Stephen Halter Kestrel是一个基于l ...

  8. react-native学习笔记--首次安装apk到小米5报错

    本文直接引用大神文档: [WINDOWS环境 React Native初识]com.android.ddmlib.InstallException: Failed to establish sessi ...

  9. Java传值和传址

    调用函数时,传的参数过去可能是传值,也可能是传址.如果是传值,函数内部的操作对参数的值没有影响:如果是传址,函数内部的操作是对参数指向的内存进行操作,会影响参数的值. Java到底是传值还是传址?用下 ...

  10. go-使用 unsafe 修改 struct 中的 field 的值

    以下是方法,不要纠结原理,等东西积累多了,你才有能力纠结原理: 首先,你需要有一个这样的函数,这是在 nsq 的源码里直接抄过来的: func unsafeValueOf(val reflect.Va ...