[喵咪大数据]Hadoop节点添加下线和磁盘扩容操作


声明:本文转载自https://my.oschina.net/wenzhenxi/blog/1591760,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

Hadoop绝非一个简单程序,集群模式下更是如此,所有的数据都存储在Hadoop中如果操作不当会存在丢失数据的风险,那么怎么在安全的情况,扩容下线维护或者磁盘满了怎么增加空间,就是今天的主要内容了.

附上:

Hadoop的官网:hadoop.apache.org 喵了个咪的博客:w-blog.cn

1.增加节点

当磁盘满了或节点不够处理速度慢了都需要对节点或者通过增加节点的方式进行磁盘扩容,这个时候就需要用到Hadoop扩容机制了

通过如下命令可以查看各节点情况磁盘容量等

> hadoop dfsadmin -report 

笔者现在有两个节点两还剩下大约 33GB的容量,我们先向HDFS中写入一些数据(笔者这里写入了9.1GB的数据)

> hdfs dfs -mkdir input > hdfs dfs -put /app/install/* input 

可以看到已经写入了很多大文件这个时候查询集群状态会发现两个节点从原本的33GB剩余已经缩减到了23GB,因为现在我们只有两个节点选择的备份数量也是2个所以每份文件都会在两个节点中进行存储

首先先进行节点扩容我们的hadoop-1现在只是作为了NameNode现在要把hadoop-1加入DataNode中然后把现在有的数据进行平均负载让hadoop-1也承担一部分文件存储工作

在master节点上修改slaves增加hadoop-1

> vim /usr/local/hadoop-2.7.3/etc/hadoop/slaves hadoop-1 

在需要增加到集群的节点中指向如下命令

> hadoop-daemon.sh start datanode #启动datanode > yarn-daemons.sh start nodemanager #启动yarn 

在master节点上执行

hadoop dfsadmin -refreshNodes #刷新识别新增加的节点 yarn rmadmin -refreshNodes    #刷新yarn识别新节点 

这个时候在通过 hadoop dfsadmin -report 查看集群状况就可以看到增加了一个节点,但是这个节点暂时没有存储任何的文件需要指向如下命令将文件进行负载均衡

如果不balance,那么cluster会把新的数据都存放在新的node上,但是这样会降低mapred的工作效率 设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

start-balancer.sh -threshold 5 

如果拷贝时间非常慢可以通过修改hdfs-site.xml设置balance的带宽,默认只有1M/s

> vim /usr/local/hadoop-2.7.3/etc/hadoop/hdfs-site.xml <property>   <name>dfs.balance.bandwidthPerSec</name>    <value>10485760</value>    <description>      Specifies the maximum amount of bandwidth that each datanode       can utilize for the balancing purpose in term of       the number of bytes per second.     </description> </property> 

2.下线节点

当我们不需要节点或者是需要对节点进维护(比如增加磁盘等操作需要重启)希望能够平滑下线Hadoop提供对应的方式

在NameNode节点中添加(或修改)如下配置项到hdfs-site.xml

> vim /usr/local/hadoop-2.7.3/etc/hadoop/hdfs-site.xml <property>            <name>dfs.hosts.exclude</name>            <value>/usr/local/hadoop-2.7.3/etc/hadoop/dfshosts.exclude</value>    </property>   

编辑dfshosts.exclude 增加需要下线的节点名称

> vim /usr/local/hadoop-2.7.3/etc/hadoop/dfshosts.exclude hadoop-2 

在执行下线命令

hdfs dfsadmin -refreshNodes 

在通过查看节点就会发现有一个 Decommissioning datanodes 此时任何数据都不会写入到下线的datanode中(下线的节点中有数据的话hadoop复制该datanode block至其他datanode需要一定的下线时间)此时下线的是hadoop-2 , hadoop-2中的块将会被迁移到 hadoop-1中,前已完成之后Decommissioning datanodes将会消失然后就可以关闭hadoop-2中的服务了,如果需要在加入到集群中只需要去除dfshosts.exclude在重新刷新

下线nodemanager也是一样修改l增加如下配置

> vim /usr/local/hadoop-2.7.3/etc/hadoop/yarn-site.xml <property>            <name>mapred.hosts.exclude</name>            <value>/usr/local/hadoop-2.7.3/etc/hadoop/dfshosts.exclude</value>    </property> 

执行下线命令

yarn rmadmin -refreshNodes 

在已经下线的节点就可以正常的关闭 datanode进程

hadoop-daemon.sh stop datanode  

通过 hadoop dfsadmin -report 查看会发现hadoop-2的状态是 Decommissioned 退役状况 这个时候文件不会再写入到hadoop2节点中

3.磁盘扩容

当整个集群存入的数据量慢慢增加磁盘总会不够,此时此刻就需要增加磁盘来解决此类问题

现在我们有3个节点可以查看到如下信息

> hdfs dfsadmin -report Configured Capacity: 126421499904 (117.74 GB) Present Capacity: 107068563456 (99.72 GB) DFS Remaining: 81215922176 (75.64 GB) DFS Used: 25852641280 (24.08 GB) DFS Used%: 24.15% 

此时我们给节点2进行磁盘扩容,这里使用的阿里云服务器增加了一块100GB的磁盘挂载到了hadoop-2服务器上 步骤 4:Linux 格式化和挂载数据盘_快速入门_云服务器 ECS-阿里云

> df Filesystem     1K-blocks     Used Available Use% Mounted on /dev/vda1       41152832 13745964  25293384  36% / /dev/vdb1      103080224    61176  97776220   1% /mnt 

多出了一个 /mut 赋予权限

> sudo chown -R hadoop:hadoop /mnt 

首先现需要下线hadoop-2节点,下线之后在hadoop-2

> su hadoop > hadoop-daemon.sh stop datanode 

修改hadoop-2配置文件vim hdfs-site.xml

> vim /usr/local/hadoop-2.7.3/etc/hadoop/hdfs-site.xml         <property>                 <name>dfs.datanode.data.dir</name>                 <value>file:/usr/local/hadoop-2.7.3/tmp/dfs/data,file:/mnt/dfs/data</value>         </property> 

然后在启动datanode

> hadoop-daemon.sh start datanode 

在hadoop-1通过NameNode中查看集群状态

> hadoop dfsadmin -report Name: 192.168.1.102:50010 (sunmi-hadoop-2) Hostname: sunmi-hadoop-2 Decommission Status : Decommissioned Configured Capacity: 147694649344 (137.55 GB) DFS Used: 9414242304 (8.77 GB) Non DFS Used: 12258566144 (11.42 GB) DFS Remaining: 126021840896 (117.37 GB) DFS Used%: 6.37% DFS Remaining%: 85.33% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 1 Last contact: Thu Jul 20 11:30:42 CST 2017 

hadoop-2的容量就增加了然后重新让节点上线

vim /usr/local/hadoop-2.7.3/etc/hadoop/dfshosts.exclude # 清除 hadoop-2 # 更新节点 > hdfs dfsadmin -refreshNodes > yarn rmadmin -refreshNodes 

然后在查看集群状况就增加了100GB的DFS的空间

> hadoop dfsadmin -report Configured Capacity: 231975649280 (216.04 GB) Present Capacity: 207191623885 (192.96 GB) DFS Remaining: 176628416512 (164.50 GB) DFS Used: 30563207373 (28.46 GB) DFS Used%: 14.75% 

4 总结

关于Hadoop相关的配置到这篇就已经结束了,关于Hadoop如果希望深入了解可以读阅**<Hadoop权威指南>**这本书,在本次事件中Hadoop主要起到的作用是对原数据的存储以及提供的任务处理调度能力,最后多谢大家的关注我们下节再见.

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

本文发表于2017年12月19日 14:33
(c)注:本文转载自https://my.oschina.net/wenzhenxi/blog/1591760,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2065 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1