阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HDFS以及HBase动态增加和删除节点

120次阅读
没有评论

共计 2665 个字符,预计需要花费 7 分钟才能阅读完成。

一个知乎上的问题:Hbase 的 Region server 和 Hadoop 的 datanode 是否可以部署在一台服务器上?如果是的话,二者是否是一对一的关系?
部署在同一台服务器上,可以减少数据跨网络传输的流量。但不是一对一对的关系,首先,数据还 hdfs 中保存 N 份,默认是三分,也就是说数据会分布在三个 datanode 上,即使 regionserver 上只保存一个 region, 它也可以与三个 datanode 交互,更何况,一台 regionserver 可以保存多个 region.

然后来看一下关于节点的动态增加与动态删除问题

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 1048576
# 如果某个 datanode 的磁盘里用率比平均水平高出 5 %,Blocks 向其他低于平均水平的 datanode 中传送
start-balancer.sh -threshold 5

说明:
随时时间推移,各个 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

HDFS 以及 HBase 动态增加和删除节点

 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 / 文件

HDFS 以及 HBase 动态增加和删除节点

3、hbase 增加 regionserver 节点

1> 执行以下命令启动 regionserver

hbase-daemon.sh start regionserver

2> 在新启动的节点上
打开 hbase shell,如下设置:

balance_switch true

HDFS 以及 HBase 动态增加和删除节点

4、hbase 删除 regionserver 节点

1> 执行命令

graceful_stop.sh data1

HDFS 以及 HBase 动态增加和删除节点

2> 由于会关闭 hbase 的 balancer,因此需要在其他 regionserver 节点上

打开 hbase shell,检查 hbase 状态
同时重新设置:

 balance_switch true

此外,注意执行的顺序,如果一个 datanodet 同时作为 regionserver, 先删除 regionserver,再删除 datanode,反之,新增的节点,先设为 datanode,再设为 regionserver

Hadoop 如何修改 HDFS 文件存储块大小  http://www.linuxidc.com/Linux/2013-09/90100.htm

将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm

从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm

将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm

HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm

Hadoop 分布式文件系统 HDFS 的工作原理 http://www.linuxidc.com/Linux/2015-11/124747.htm

Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm

《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm

Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138715.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2665字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中