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

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

1、HDFS—核心参数

1.1 NameNode 内存生产配置

1、NameNode内存计算

每个文件块大概占用150byte,一台服务器128G内存为例,能储存多少文件块呢?

12810241024*1024/150Byte ≈ 9.1 亿

G M KB Byte

2、Hadoop2.x系列,配置 NameNode 内存

NameNode 内存默认 2000m,如果服务器内存 4G,NameNode 内存可以配置 3g。在hadoop-env.sh 文件中配置如下。

HADOOP_NAMENODE_OPTS=-Xmx3072m

3、Hadoop3.x 系列,配置 NameNode 内存

(1)hadoop-env.sh 中描述 Hadoop 的内存是动态分配的

# The maximum amount of heap to use (Java -Xmx). If no unit
# is provided, it will be converted to MB. Daemons will
# prefer any Xmx setting in their respective _OPT variable.
# There is no default; the JVM will autoscale based upon machine
# memory size.
# export HADOOP_HEAPSIZE_MAX=
# The minimum amount of heap to use (Java -Xms). If no unit
# is provided, it will be converted to MB. Daemons will
# prefer any Xms setting in their respective _OPT variable.
# There is no default; the JVM will autoscale based upon machine
# memory size.
# export HADOOP_HEAPSIZE_MIN=
HADOOP_NAMENODE_OPTS=-Xmx102400m

(2)查看NameNode占用内存

提示:要先启动(查看NameNode的进程号)jps

30f354c5db90462181d63eadc3130a77.png

 jmap -heap 2611

7a74664950fd45a6935f29d5ae6e7f97.png

(3)查看DataNode占用内存


5826cdcdf7644ef09a98e0146620f889.png

注意:查看发现 hadoop102 上的 NameNode 和 DataNode 占用内存都是自动分配的,且相等。不是很合理。

合理分配:

NameNode最小值是1G,每增加1000000个block,增加1G内存。

一个DataNode上额副本总数低于4000000,调为4G,超过4000000,每增加1000000,增加1G。

具体修改:hadoop-env.sh

export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS -
Xmx1024m"
export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS
-Xmx1024m"

1.2 NameNode 心跳并发装置


43285870cd2a4d3c972f7655738e8f2b.png

1、hdfs-site.xml

The number of Namenode RPC server threads that listen to requests 
from clients. If dfs.namenode.servicerpc-address is not 
configured then Namenode RPC server threads listen to requests 
from all nodes.
NameNode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发
的元数据操作。
对于大集群或者有大量客户端的集群来说,通常需要增大该参数。默认值是 10。
<property>
 <name>dfs.namenode.handler.count</name>
 <value>21</value>
</property

企业经验:dfs.namenode.handler.count=20 × 𝑙𝑜𝑔𝑒

𝐶𝑙𝑢𝑠𝑡𝑒𝑟 𝑆𝑖𝑧𝑒,比如集群规模(DataNode 台

数)为 3 台时,此参数设置为 21。

1.3 开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。

1、回收站机制

9045c226ea824bc9911ca504b29edcaa.png

2、开启回收站功能参数说明

(1)默认值 fs.trash.interval = 0,0 表示禁用回收站;其他值表示设置文件的存活时间。

(2)默认值 fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为 0,则该

值设置和 fs.trash.interval 的参数值相等。

(3)要求 fs.trash.checkpoint.interval <= fs.trash.interval。

3、启用回收站

修改 core-site.xml,配置垃圾回收时间为 1 分钟。

<property>
 <name>fs.trash.interval</name>
 <value>1</value>
</property>

4、查看回收站

回收站目录在 HDFS 集群中的路径:/user/atguigu/.Trash/….

5、注意:通过网页直接删除的文件也不会走回收站

6、通过程序删除的文件不会经过回收站,需要调用moveToTrash()才进入回收站。

Trash trash = New Trash(conf);
trash.moveToTrash(path);

7、只有在命令行利用 hadoop fs -rm 命令删除的文件才会走回收站。

8、恢复回收站数据(利用hadoop fs -mv)

2、HDFS—多目录

2.1 NameNode 多目录配置

1、NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。


73769485b84a4853a8e10c536b7a42b3.png

2、具体配置如下:

1、在 hdfs-site.xml 文件中添加如下内容

 <name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.
dir}/dfs/name2</value>
</property>

注意:因为每台服务器节点的磁盘情况不一样,所以这个配置配完之后,可以选择不分发。

2、停止集群,删除三台节点的 data 和 logs 中所有数据。

3、格式化集群并启动。

2.2 DataNode多目录配置

1、DataNode 可以配置成多个目录,每个目录存储的数据不一样(数据不是副本)


c5152e407ae74719aa9333baa7d7ce46.png

2、具体配置如下:

在 hdfs-site.xml 文件中添加如下内容

<property>
 <name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.
dir}/dfs/data2</value>
</property>

2.3 集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x 新特性)


d9f29863e6fa4e9087ca379a036cf72e.png

1、生产均衡计划(一个磁盘,不会生成计划)

hdfs diskbalancer -plan hadoop103

2、执行均衡计划

hdfs diskbalancer -execute hadoop103.plan.json

3、查看当前均衡任务的执行情况

hdfs diskbalancer -query hadoop103

4、取消均衡任务

hdfs diskbalancer -cancel hadoop103.plan.json

3、HDFS—集群扩容及缩容

3.1 添加白名单

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


2dd239d397ac4d1e92bd366da1bbab9c.png

配置白名单步骤如下:

1、在 NameNode 节点的/opt/module/hadoop3.1.3/etc/hadoop 目录下分别创建whitelist 和blacklist 文件。

(1)创建白名单

vim whitelist

在 whitelist 中添加如下主机名称,假如集群正常工作的节点为 102 103。

9d6e4194fe794ec2b6c4777f317f1227.png

(2)创建黑名单

touch blacklist


保持空就行

2、在 hdfs-site.xml 配置文件中增加 dfs.hosts 配置参数

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

3、分发配置文件whitelist,hdfs-site.xml

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

5、在 web 浏览器上查看 DN,http://hadoop102:9870/dfshealth.html#tab-datanode


相关文章
|
存储 分布式计算 运维
Hadoop---10、生产调优手册(二)
Hadoop---10、生产调优手册(二)
|
分布式计算 资源调度 Hadoop
Hadoop调优
Hadoop调优
124 1
|
8月前
|
分布式计算 资源调度 Hadoop
大数据Hadoop集群部署与调优讨论
大数据Hadoop集群部署与调优讨论
|
9月前
|
存储 分布式计算 资源调度
❤️hadoop常用命令总结及百万调优❤️
❤️hadoop常用命令总结及百万调优❤️
121 0
|
9月前
|
资源调度 分布式计算 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配置。
158 4
|
9月前
|
分布式计算 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。
90 1
|
分布式计算 资源调度 Hadoop
Hadoop安装和部署手册
Hadoop安装和部署手册
|
分布式计算 Hadoop Java
Hadoop配置手册1:hadoop环境搭建与测试
Hadoop配置手册1:hadoop环境搭建与测试
367 0
|
存储 分布式计算 Hadoop
Hadoop配置手册2: 测试Hdfs和WordCount测试
Hadoop配置手册2: 测试Hdfs和WordCount测试
162 0
|
存储 分布式计算 资源调度
Hadoop 参数调优
Hadoop 参数调优
87 0

相关实验场景

更多