HDFS核心参数

楼高2年前技术文章782

1.NameNode内存生产配置

(1)NameNode内存计算,每个文件块大概占用150byte,一台服务器128G内存为例,能存储9.1亿个文件

128 * 1024 * 1024 * 1024  / 150Byte ≈  9.1亿

(2)Hadoop2.x系列,NameNode内存默认2000m,如果服务器内存4G,NameNode内存可以配置3g。在hadoop-env.sh文件中配置HADOOP_NAMENODE_OPTS=-Xmx3072m

(3)Hadoop3.x系列,hadoop-env.sh中描述Hadoop的内存是动态分配的

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

image.png

2.NameNode心跳并发配置

NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作,对于大集群或者有大量客户端的集群来说,通常需要增大该参数。默认值是10

<property>

    <name>dfs.namenode.handler.count</name>

    <value>21</value>

</property>

企业经验计算:

比如集群规模(DataNode台数)为3台时,此参数设置为21。计算公示如下:

image.png

3. 开启回收站配置

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

(2)回收站工作机制如右图所示

(3)开启回收站功能参数说明

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

        默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

       要求fs.trash.checkpoint.interval <= fs.trash.interval。

(4)启用回收站

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

<property>

    <name>fs.trash.interval</name>

    <value>1</value>

</property>

(5)查看回收站

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

  (6) 通过网页上直接删除的文件也不会走回收站

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

Trash trash = New Trash(conf);

trash.moveToTrash(path);

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

  (9) 回收站回复,通过hadoop fs mv命令将回收站数据移动到制定目录

相关文章

MySQL 8.0 不可见索引使用

一、具体信息1、在提供 SQL 优化意见的时候包括了两个冗余索引的内容,具体内容如下:查看慢 SQL 的时候发现 database 库 table 表中存在冗余索引,具体冗余索引情况如下:KEY `k...

Prometheus集成pushgateway监控k8s集群

Prometheus集成pushgateway监控k8s集群

Prometheus部署环境介绍本文的k8s环境是通过二进制方式搭建的v1.20.13版本清单准备注意集群版本的坑,自己先到Github上下载对应的版本。注意: 集群版本在v1.21.x之前需要注意下...

MySQL 8.0 新特性:Descending Indexes

MySQL 8.0 新特性:Descending Indexes

一、前言MySQL 8.0 之前的索引排序规则之前只允许 ASC 存储,创建时指定 DESC 也会被忽略,8.0 版本为我们带来了 Descending Indexes 降序索引 👏👏👏只能使用 AS...

Hbase region移动

Hbase region移动

1、背景由于hbase 表在创建时没有进行预分区,导致自动分裂的region分布到同一region server上。现将region 手动移动到其他节点,使分布均匀2、操作步骤1、找到要移动的regi...

hbase-auto balancer失效

hbase-auto balancer失效

背景集群中,发现hbase 的compaction 队列一直增长,出现hang住的情况,排查发现,一些表的region集中在某些机器上,分布不均匀。但是排查发现auto balancer是默认开启的。...

centos6下时间修改

1、手动修改1)使用date命令修改的时间是系统时间临时生效的,重启系统后失效,需要将当前时间和硬件时间同步后才可以持久生效。date -s "2012-05-23 01:01:01&quo...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。