当前位置: 首页 > news >正文

Hadoop 3.x(生产调优手册)----【HDFS--核心参数】

Hadoop 3.x(生产调优手册)----【HDFS--核心参数】

  • 1. NameNode内存生产配置
  • 2. NameNode心跳并发配置
  • 3. 开启回收站配置
    • 1. 回收站工作机制
    • 2. 开启回收站功能参数说明
    • 3. 启用回收站
    • 4. 查看回收站
    • 5. 注意:通过网页上直接删除的文件也不会走回收站
    • 6. 通过程序删除的文件不会经过回收站,需要调用 moveToTrash() 才进入回收站
    • 7. 只有在命令行利用hadoop fs -rm命令删除的文件才会走回收站
    • 8. 恢复回收站数据

1. NameNode内存生产配置

  1. NameNode 内存计算

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

在这里插入图片描述

  1. Hadoop2.x 系列,配置 NameNode 内存

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

HADOOP_NAMENODE_OPTS=-Xmx3072m
  1. Hadooo3.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 占用内存

[fickler@hadoop102 hadoop]$ jps
2913 Jps
2146 DataNode
2601 JobHistoryServer
2010 NameNode
2463 NodeManager
[fickler@hadoop102 hadoop]$ jmap -heap 2010
Attaching to process ID 2010, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.212-b10

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 1031798784 (984.0MB)
   NewSize                  = 21495808 (20.5MB)
   MaxNewSize               = 343932928 (328.0MB)
   OldSize                  = 43515904 (41.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 181403648 (173.0MB)
   used     = 51214112 (48.841583251953125MB)
   free     = 130189536 (124.15841674804688MB)
   28.23212904737175% used
From Space:
   capacity = 18350080 (17.5MB)
   used     = 0 (0.0MB)
   free     = 18350080 (17.5MB)
   0.0% used
To Space:
   capacity = 18874368 (18.0MB)
   used     = 0 (0.0MB)
   free     = 18874368 (18.0MB)
   0.0% used
PS Old Generation
   capacity = 64487424 (61.5MB)
   used     = 27225592 (25.96434783935547MB)
   free     = 37261832 (35.53565216064453MB)
   42.2184517713097% used

15572 interned Strings occupying 1472168 bytes.

(3). 查看 DataNode 占用内存

[fickler@hadoop102 hadoop]$ jmap -heap 2146
Attaching to process ID 2146, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.212-b10

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 1031798784 (984.0MB)
   NewSize                  = 21495808 (20.5MB)
   MaxNewSize               = 343932928 (328.0MB)
   OldSize                  = 43515904 (41.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 116916224 (111.5MB)
   used     = 83610888 (79.73755645751953MB)
   free     = 33305336 (31.76244354248047MB)
   71.51350354934488% used
From Space:
   capacity = 7864320 (7.5MB)
   used     = 7854024 (7.490180969238281MB)
   free     = 10296 (0.00981903076171875MB)
   99.86907958984375% used
To Space:
   capacity = 9437184 (9.0MB)
   used     = 0 (0.0MB)
   free     = 9437184 (9.0MB)
   0.0% used
PS Old Generation
   capacity = 32505856 (31.0MB)
   used     = 8200896 (7.82098388671875MB)
   free     = 24304960 (23.17901611328125MB)
   25.228980279737904% used

14824 interned Strings occupying 1308896 bytes

查看发现 hadoop102 上的 NameNode 和 DataNode 占用内存都是自动分配的,且相等。不是很合理。在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

具体修改:hadoop-env.sh

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

修改完后,记得分发配置,重启服务

2. NameNode心跳并发配置

在这里插入图片描述

在这里插入图片描述

3. 开启回收站配置

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

1. 回收站工作机制

在这里插入图片描述

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/fickler/.Trash/…

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

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

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

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

在这里插入图片描述

8. 恢复回收站数据

在这里插入图片描述

相关文章:

  • Go Machine Learning
  • 【git】关于Git这一篇就够了
  • 什么 ? 陪玩都月入过忘拉~这不得python采集一下
  • 基于springboot服饰电商平台的设计与开发-计算机毕业设计源码+LW文档
  • 【STM32】硬件资源及芯片介绍
  • SpringMVC实现文件的上传和下载
  • Android 系统jni到hal层回调代码
  • 初入算法(2)—— 进入算法世界
  • 运行谷歌开源BERT程序时遇到的bug修改记录
  • 算法学习入门
  • 【SSM】spring核心思想——IOC和DI
  • 自由的程序员应该学会自由地控制空间-----动态内存管理
  • [架构之路-51]:架构师 - 用系统化、结构化思维解决复杂难搞的软件故障问题 - 马克思主义哲学在软件系统中的应用
  • 【面试题】JavaScript数组切片方法有哪些?
  • 【PyTorch深度学习项目实战100例】—— 基于CNN卷积神经网络实现中文手写汉字识别 | 第60例
  • [nginx文档翻译系列] 控制nginx
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【剑指offer】让抽象问题具体化
  • 【前端学习】-粗谈选择器
  • Android交互
  •  D - 粉碎叛乱F - 其他起义
  • Fabric架构演变之路
  • HashMap剖析之内部结构
  • iOS编译提示和导航提示
  • Netty源码解析1-Buffer
  • Otto开发初探——微服务依赖管理新利器
  • php ci框架整合银盛支付
  • RxJS: 简单入门
  • yii2中session跨域名的问题
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关于springcloud Gateway中的限流
  • 后端_ThinkPHP5
  • 缓存与缓冲
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 学习HTTP相关知识笔记
  • 一道闭包题引发的思考
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​2020 年大前端技术趋势解读
  • ​Linux·i2c驱动架构​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)STL算法之元素计数
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (5)STL算法之复制
  • (libusb) usb口自动刷新
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (四) Graphivz 颜色选择
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)我也是一只IT小小鸟
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上