一个知乎上的问题: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. 迟来的Json反序列化

    源码发布 搞了一个下午,终于搞定了这个号称中国的github...以后源码直接在这里发布了(github实在用不来,英文实在太烂了) https://code.csdn.net/jy02305022/ ...

  2. 快速查找sql server中的存储过程和视图

    select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped ...

  3. ZooKeeper安装与配置

    一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...

  4. ASP.NET免费服务器~支持MVC和Net4.5

    1.先注册一个号.地址:https://appharbor.com/ 2.看看有没有你需要的插件,基本上都是免费的 3.本地创建git库 4.复制git远程仓库的地址 5.推送到远程仓库 6.查看自己 ...

  5. SQL Server 在缺少文件组的情况下如何还原数据库

    SQL Server 在缺少文件组的情况下如何还原数据库 一.背景 我有一个A库,由于a,b两张表的数据量比较大,所以对表进行分区:在把A库迁移到一个新的集群上去,我只备份了A库的主分区过去进行还原为 ...

  6. putty无密码登陆

    1.打开puttygen.exe,点击Generate,然后按照说明用鼠标在空白处移动,生成密钥对.   2.保存私钥,不填passphrase.同时保存公钥,并打开公钥文件,将回车符去掉. 3.将公 ...

  7. 分布式服务协调员zookeeper - 应用场景和监控

    zookeeper在分布式系统中作为协调员的角色,可应用于Leader选举.分布式锁.配置管理等服务的实现.以下我们从zookeeper提供的API.应用场景和监控三方面学习和了解zookeeper( ...

  8. nginx 基础

    同步和阻塞,异步和非阻塞 http://yaocoder.blog.51cto.com/2668309/1308899  (51CTO) https://segmentfault.com/a/1190 ...

  9. 2.EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  10. 『.NET Core CLI工具文档』(十)dotnet-build

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-build 翻译:dotnet-build 名称 dotnet-build -- 生成项目和所有的依赖 概 ...