Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用

这篇具有很好参考价值的文章主要介绍了Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(143)NameNode内存配置

每个文件块(的元数据等)在内存中大概 占用150byte,一台服务器128G内存的话,大概能存储9.1亿个文件块。

在Hadoop2.x里,如何配置NameNode内存?

NameNode默认内存2000M。如果你的服务器内存是4G,那一般可以把NN内存设置成3G,留1G给服务器维持基本运行(如系统运行需要、DataNode运行需要等)所需就行。

在hadoop-env.sh文件中设置:

HADOOP_NAMENODE_OPTS=-Xmx3072m

Hadoop3.x系列,如何配置NameNode内存?

答案是动态分配的。hadoop-env.sh有描述:

# 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

如何查看NN所占用内存?

[atguigu@hadoop102 ~]$ jps
3088 NodeManager
2611 NameNode
3271 JobHistoryServer
2744 DataNode
3579 Jps
[atguigu@hadoop102 ~]$ jmap -heap 2611
Heap Configuration:
   MaxHeapSize              = 1031798784 (984.0MB)

如何查看DataNode所占内存?

[atguigu@hadoop102 ~]$ jmap -heap 2744
Heap Configuration:
   MaxHeapSize              = 1031798784 (984.0MB)

DN和NN的内存在默认情况下都是自动分配的,且NN和DN相等。这个就不太合理了,万一两个加起来超过了节点总内存怎么办,可能会崩掉。

经验参考:

https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html#concept_fzz_dq4_gbb

Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用,大数据技术,大数据,hadoop
Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用,大数据技术,大数据,hadoop

NameNode是每增加100万个文件块,就增加1G内存;

DataNode是每增加100万个副本,就增加1G内存。

本质上都是管理元数据,可以理解成,各自管理的数据单位量在上100w之后,就增加1G内存。

具体修改:hadoop-env.sh

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

(144)NN心跳并发配置

Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用,大数据技术,大数据,hadoop

在实际生产运行时,每台DataNode会跟NameNode通信,客户端也会并发向NameNode发出申请,那么NameNode准备多少个线程是合适的呢,即NameNode的并发线程数设置成多少合适呢?

一般在hdfs-sit.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=Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用,大数据技术,大数据,hadoop
,比如集群规模(DataNode台数)为3台时,此参数设置为21。

可通过简单的python代码计算该值,代码如下:

[atguigu@hadoop102 ~]$ sudo yum install -y python
[atguigu@hadoop102 ~]$ python
Python 2.7.5 (default, Apr 11 2018, 07:36:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> print int(20*math.log(3))
21
>>> quit()

(145)开启回收站

开启回收站之后,删除的文件会送进回收站,等待超时后再彻底删除,这样子方便恢复原数据,起到防止误删除、备份等作用。本质上是将文件放在特定目录存储,跟windows的回收站功能一样。

Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用,大数据技术,大数据,hadoop

单位是min

参数说明:

  • 默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间;
  • 默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间,意思是多长时间去检查一次,准备删除文件。如果该值为0,则该值设置和fs.trash.interval的参数值相等;
  • 要求fs.trash.checkpoint.interval <= fs.trash.interval

具体启用的话,是修改core-site.xml,配置垃圾回收时间是1分钟:

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

那回收站文件的路径在哪儿呢?

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

需要注意,通过网页上HDFS目录管理里删除的文件并不会走回收站

通过程序删除的文件同样也不会走回收站,除非你在代码里显式调用了moveToTrash()

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

所以只有命令行里,通过hadoop fs -rm指令删除的文件,才会走回收站。且当你执行这个指令的时候,会有以下提示:

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /user/atguigu/input
2021-07-14 16:13:42,643 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop102:9820/user/atguigu/input' to trash at: hdfs://hadoop102:9820/user/atguigu/.Trash/Current/user/atguigu/input

那如何恢复回收站数据呢?文章来源地址https://www.toymoban.com/news/detail-720543.html

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -mv
/user/atguigu/.Trash/Current/user/atguigu/input    /user/atguigu/input

参考文献

  1. 【尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放】

到了这里,关于Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容

      增加或缩减服务器,注意不允许白名单和黑名单同时出现同一个主机。   原有数据节点不能满足数据存储需求时,需要在原有集群的基础上动态增加节点,即动态增加服务器,增加服务器的同时不需要重启集群。   hadoop完全分布式集群设置了3个datanode节点,当白名

    2024年02月03日
    浏览(46)
  • Hadoop3教程(二十四):Yarn的常用命令与参数配置实例

    本章我是仅做了解,所以很多地方并没有深入去探究,用处估计不大,可酌情参考。 列出所有Application : yarn application -list 根据Application状态过滤出指定Application ,如过滤出已完成的Application: yarn application -list -appStates FINISHED Application的状态有:ALL、NEW、NEW_SAVING、SUBMITTED、

    2024年02月08日
    浏览(69)
  • Hadoop3教程(二十五):Yarn的多队列调度器使用案例

    生产环境下怎么创建队列? 调度器默认只会开一个default队列,这个肯定是不满足生产要求的; 可以按照框架来划分队列。比如说hive/spark/flink的任务分别放在不同的队列里,不过这么做的效率不高,企业用的不是很多。 按照业务模块来划分队列。比如说登录注册的业务,单

    2024年02月02日
    浏览(30)
  • 【hadoop3.x】一 搭建集群调优

    https://blog.csdn.net/fen_dou_shao_nian/article/details/120945221 2.1 模板虚拟机环境准备 0)安装模板虚拟机,IP 地址 192.168.10.100、主机名称 hadoop100、内存 4G、硬盘 50G 1)hadoop100 虚拟机配置要求如下(本文 Linux 系统全部以 CentOS-7.5-x86-1804 为例) (1)使用 yum 安装需要虚拟机可以正常上网,

    2024年02月07日
    浏览(38)
  • 大数据技术之Hadoop(生产调优手册)

    大数据技术之Hadoop(生产调优手册) 1)NameNode内存计算 每个文件块大概占用150byte,一台服务器128G内存为例,能存储多少文件块呢? 2)Hadoop2.x系列,配置NameNode内存 NameNode内存默认2000m,如果服务器内存4G,NameNode内存可以配置3g。在hadoop-env.sh文件中配置如下。 HADOOP_NAMENODE

    2024年02月09日
    浏览(30)
  • 【生产级实践】Docker部署配置Hadoop3.x + HBase2.x实现真正分布式集群环境

    网上找了很多资料,但能够实现Docker安装Hadoop3.X和Hbase2.X真正分布式集群的教程很零散,坑很多, 把经验做了整理, 避免趟坑。 1、机器环境 这里采用三台机器来部署分布式集群环境: 192.168.1.101 hadoop1 (docker管理节点) 192.168.1.102 hadoop2 192.168.1.103 hadoop3 2、下载Docker Hadoop的

    2024年02月02日
    浏览(35)
  • 第三部分:Spark调优篇

    第一部分:Spark基础篇_奔跑者-辉的博客-CSDN博客 第一部分:Spark基础篇_奔跑者-辉的博客-CSDN博客 第三部分:Spark调优篇_奔跑者-辉的博客-CSDN博客 目录 1 常规性能调优 常规性能调优一:  最优资源配置 常规性能调优二:  RDD调优 常规性能调优三:并行度调节 常规性能调优四

    2024年02月16日
    浏览(34)
  • Hadoop3教程(十四):MapReduce中的排序

    排序是MR中最重要的操作之一,也是面试中可能被问到的重点。 MapTask和ReduceTask中都会对数据按照KEY来排序,主要是为了效率,排完序之后,相同key值的数据会被放在一起,更方便下一步(如Reducer())的汇总处理。 默认排序是按照 字典顺序 (字母由小到大,或者是数字由小

    2024年02月07日
    浏览(59)
  • 【大数据基础】Hadoop3.1.3安装教程

    来源: https://dblab.xmu.edu.cn/blog/2441/ 前言:重装解决一切bug!事实上,问题中的绝大部分衍生问题都可以通过重装解决。 创建Hadoop用户 首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 : 接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码: 可为

    2024年02月09日
    浏览(52)
  • Hadoop(01) Hadoop3.3.6安装教程,单机/伪分布式配置

    在安装 Hadoop 3.3.6 前,需要满足以下前置条件: Java Development Kit (JDK):Hadoop 是用 Java 编写的,因此需要安装并配置适当版本的 JDK。Hadoop 3.3.6 建议使用 JDK 8 或更高版本。确保正确安装 JDK,并设置 JAVA_HOME 环境变量。 SSH:Hadoop 集群中的节点需要通过 SSH 进行通信和管理。确保在

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包