Hadoop---10、生产调优手册(二)

简介: Hadoop---10、生产调优手册(二)

3.2 服役新服务器

1、随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。

2、环境准备

(1)在 hadoop100 主机上再克隆一台 hadoop105 主机

(2)修改 IP 地址和主机名称

(3)拷贝 hadoop102 的/opt/module 目录和/etc/profile.d/my_env.sh 到 hadoop105

(4)删除 hadoop105 上 Hadoop 的历史数据,data 和 log 数据

(5)配置 hadoop102 和 hadoop103 到 hadoop105 的 ssh 无密登录

3、服役新节点的具体步骤

(1)直接启动 DataNode,即可关联到集群

 hdfs --daemon start datanode
 yarn --daemon start nodemanager

4、在白名单中增加新服役的服务器

(1)在白名单 whitelist 中增加 hadoop104、hadoop105,并重启集群

(2)分发白名单whitelist

(3)刷新NameNode

hdfs dfsadmin -refreshNodes

5、在 hadoop105 上上传文件

3.3 黑名单退役服务器

黑名单:表示在黑名单的主机 IP 地址不可以用来存储数据。

1、编辑/opt/module/hadoop-3.1.3/etc/hadoop 目录下的 blacklist 文件。添加如下主机名称(要退役的节点)

注意:如果白名单中没有配置,需要在 hdfs-site.xml 配置文件中增加 dfs.hosts 配置参数

<!-- 黑名单 -->
<property>
 <name>dfs.hosts.exclude</name>
 <value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>

2、分发配置文件 blacklist,hdfs-site.xml

3、第一次添加黑名单必须重启集群,不是第一次,只需要刷新 NameNode 节点即可。

hdfs dfsadmin -refreshNodes

4、检查 Web 浏览器,退役节点的状态为 decommission in progress(退役中),说明数据节点正在复制块到其他节点。

5、等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。

6、如果数据不均衡,可以用命令实现集群的再平衡。

4、HDFS—存储优化

注:演示纠删码和异构存储需要一共 5 台虚拟机。尽量拿另外一套集群。提前准备 5 台服务器的集群。

4.1 纠删码

4.1.1 纠删原理

HDFS 默认情况下,一个文件有 3 个副本,这样提高了数据的可靠性,但也带来了 2 倍的冗余开销。Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约 50%左右的存储空间。

7879d79ff3fa4eb7b9f0e6e8e0faab81.png

1、纠删码操作相关的命令

Usage: bin/hdfs ec [COMMAND]
 [-listPolicies]
 [-addPolicies -policyFile <file>]
 [-getPolicy -path <path>]
 [-removePolicy -policy <policy>]
 [-setPolicy -path <path> [-policy <policy>] [-replicate]]
 [-unsetPolicy -path <path>]
 [-listCodecs]
 [-enablePolicy -policy <policy>]
 [-disablePolicy -policy <policy>]
 [-help <command-name>].

2、查看当前支持的纠删码策略

Erasure Coding Policies:
ErasureCodingPolicy=[Name=RS-10-4-1024k, Schema=[ECSchema=[Codec=rs, 
numDataUnits=10, numParityUnits=4]], CellSize=1048576, Id=5], 
State=DISABLED
ErasureCodingPolicy=[Name=RS-3-2-1024k, Schema=[ECSchema=[Codec=rs, 
numDataUnits=3, numParityUnits=2]], CellSize=1048576, Id=2], 
State=DISABLED
ErasureCodingPolicy=[Name=RS-6-3-1024k, Schema=[ECSchema=[Codec=rs, 
numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=1], 
State=ENABLED
ErasureCodingPolicy=[Name=RS-LEGACY-6-3-1024k, 
Schema=[ECSchema=[Codec=rs-legacy, numDataUnits=6, numParityUnits=3]], 
CellSize=1048576, Id=3], State=DISABLED
ErasureCodingPolicy=[Name=XOR-2-1-1024k, Schema=[ECSchema=[Codec=xor, 
numDataUnits=2, numParityUnits=1]], CellSize=1048576, Id=4], 
State=DISABLED

3、纠删码策略解释

RS-3-2-1024k:使用 RS 编码,每 3 个数据单元,生成 2 个校验单元,共 5 个单元,也就是说:这 5 个单元中,只要有任意的 3 个单元存在(不管是数据单元还是校验单元,只要

总数=3),就可以得到原始数据。每个单元的大小是1024k=10241024=1048576。


a87019c9b66c4cfcb509fc542c59de07.png

RS-10-4-1024k:使用 RS 编码,每 10 个数据单元(cell),生成 4 个校验单元,共 14个单元,也就是说:这 14 个单元中,只要有任意的 10 个单元存在(不管是数据单元还是校

验单元,只要总数=10),就可以得到原始数据。每个单元的大小是 1024k=10241024=1048576。

RS-6-3-1024k:使用 RS 编码,每 6 个数据单元,生成 3 个校验单元,共 9 个单元,也就是说:这 9 个单元中,只要有任意的 6 个单元存在(不管是数据单元还是校验单元,只要

总数=6),就可以得到原始数据。每个单元的大小是1024k=1024*1024=1048576。

RS-LEGACY-6-3-1024k:策略和上面的 RS-6-3-1024k 一样,只是编码的算法用的是 rslegacy。

XOR-2-1-1024k:使用 XOR 编码(速度比 RS 编码快),每 2 个数据单元,生成 1 个校验单元,共 3 个单元,也就是说:这 3 个单元中,只要有任意的 2 个单元存在(不管是数据单元还是校验单元,只要总数= 2),就可以得到原始数据。每个单元的大小是1024k=1024*1024=1048576。

4.1.2 纠删码案例实操

fc3ff238c34144659018e6f9103fd988.png

纠删码策略是给具体一个路径设置。所有往此路径下储存的文件,都会执行此策略。默认只开启对RS-6-3-1024k 策略的支持,如要使用别的策略需要提前启用。

1、需求:将/input 目录设置为 RS-3-2-1024k 策略

2、具体步骤

(1)开启对 RS-3-2-1024k 策略的支持

hdfs ec -enablePolicy -policy RS-3-2-1024k

(2)在 HDFS 创建目录,并设置 RS-3-2-1024k 策略

hdfs ec -setPolicy -path /input -policy RS-3-2-1024k

(3)上传文件,并查看文件编码后的存储情况

hdfs dfs -put web.log /input

注:你所上传的文件需要大于 2M 才能看出效果。(低于 2M,只有一个数据单元和两个校验单元)

4.2 异构存储(冷热数据分离)

异构存储主要解决不同的数据储存在不同类型的硬盘中,达到最佳性能的问题。

1、关于储存类型

RAM_DISK:(内存镜像文件系统)

SSD:(固态硬盘)

DISK:(普通磁盘,在HDFS中,如果没有主动声明数据目录储存类型默认都是DISK)

ARCHIVE:(没有特指哪种存储介质,主要的指的是计算能力比较弱而存储密度比较高的存储介质,用来解决数据量的

容量扩增的问题,一般用于归档)

2、关于储存策略


29b182357f2e4225af3a29301cc4c3bf.png

5、HDFS—故障排除

5.1 NameNode故障处理

1、NameNode 进程挂了并且存储的数据也丢失了,如何恢复 NameNode。

2、故障模拟

(1)kill -9 NameNode进程

(2)删除NameNode储存的数据(/opt/module/hadoop-3.1.3/data/tmp/dfs/name)

3、问题解决

(1)拷贝 SecondaryNameNode 中数据到原 NameNode 存储数据目录

(2)重新启动 NameNode

5.2 集群安全模式和磁盘修复

1、安全模式:文件系统之接受读数据请求,而不接受删除、修改等变更请求

2、进入安全模式场景

(1)NameNode在加载镜像文件和编辑日志期间处于安全模式;

(2)NameNode在接受DataNode注册时,处于安全模式


05d20d06132441c08f1b3a53a68d864d.png

3、退出安全模式

dfs.namenode.safemode.min.datanodes:最小可用 datanode 数量,默认 0

dfs.namenode.safemode.threshold-pct:副本数达到最小要求的 block 占系统总 block 数的

百分比,默认 0.999f。(只允许丢一个块)

dfs.namenode.safemode.extension:稳定时间,默认值 30000 毫秒,即 30 秒

4、基本语法

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成之后,自动退出安全模式。

(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)

(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)

(3)bin/hdfs dfsadmin -safemode leave(功能描述:离开安全模式状态)

(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)


相关文章
|
分布式计算 资源调度 Hadoop
Hadoop调优
Hadoop调优
113 1
|
6月前
|
分布式计算 资源调度 Hadoop
大数据Hadoop集群部署与调优讨论
大数据Hadoop集群部署与调优讨论
|
7月前
|
资源调度 分布式计算 Hadoop
Hadoop Yarn 核心调优参数
这是一个关于测试集群环境的配置说明,包括3台服务器(master, slave1, slave2)运行CentOS 7.5,每台有4核CPU和4GB内存。集群使用Hadoop 3.1.3,JDK1.8。Yarn核心配置涉及调度器选择、ResourceManager线程数、节点检测、逻辑处理器使用、核心转换乘数、NodeManager内存和CPU设置,以及容器的内存和CPU限制。配置完成后,需要重启Hadoop并检查yarn配置。
133 4
|
7月前
|
存储 分布式计算 资源调度
❤️hadoop常用命令总结及百万调优❤️
❤️hadoop常用命令总结及百万调优❤️
102 0
|
7月前
|
分布式计算 Hadoop Java
Hadoop MapReduce 调优参数
对于 Hadoop v3.1.3,针对三台4核4G服务器的MapReduce调优参数包括:`mapreduce.reduce.shuffle.parallelcopies`设为10以加速Shuffle,`mapreduce.reduce.shuffle.input.buffer.percent`和`mapreduce.reduce.shuffle.merge.percent`分别设为0.8以减少磁盘IO。
76 1
|
存储 分布式计算 Hadoop
Hadoop---10、生产调优手册(一)
Hadoop---10、生产调优手册(一)
|
分布式计算 资源调度 Hadoop
Hadoop安装和部署手册
Hadoop安装和部署手册
|
分布式计算 Hadoop Java
Hadoop配置手册1:hadoop环境搭建与测试
Hadoop配置手册1:hadoop环境搭建与测试
355 0
|
存储 分布式计算 Hadoop
Hadoop配置手册2: 测试Hdfs和WordCount测试
Hadoop配置手册2: 测试Hdfs和WordCount测试
150 0
|
存储 分布式计算 资源调度
Hadoop 参数调优
Hadoop 参数调优
79 0