网易首页 > 网易号 > 正文 申请入驻

大数据开发基础之HDFS参数调优步骤分享

0
分享至

1.NameNode数据目录

dfs.name.dir, dfs.namenode.name.dir

指定一个本地文件系统路径,决定NN在何处存放fsimage和editlog文件。可以通过逗号分隔指定多个路径。 目前我们的产线环境只配置了一个目录,并存放在了做了RAID1或RAID5的磁盘上。

2.DataNode数据目录

dfs.data.dir, dfs.datanode.data.dir

指定DN存放块数据的本地盘路径,可以通过逗号分隔指定多个路径。在生产环境可能会在一个DN上挂多块盘。

3.数据块的副本数

dfs.replication

数据块的副本数,默认值为3

4.数据块大小

dfs.block.size

HDFS数据块的大小,默认为128M,目前我们产线环境配置的是1G

5.HDFS做均衡时使用的最大带宽

dfs.datanode.balance.bandwidthPerSec

HDFS做均衡时使用的最大带宽,默认为1048576,即1MB/s,对大多数千兆甚至万兆带宽的集群来说过小。不过该值可以在启动balancer脚本时再设置,可以不修改集群层面默认值。目前目前我们产线环境设置的是50M/s~100M/s

6.磁盘可损坏数

dfs.datanode.failed.volumes.tolerated

DN多少块盘损坏后停止服务,默认为0,即一旦任何磁盘故障DN即关闭。对盘较多的集群(例如每DN12块盘),磁盘故障是常态,通常可以将该值设置为1或2,避免频繁有DN下线。

7.数据传输连接数

dfs.datanode.max.xcievers

DataNode可以同时处理的数据传输连接数,即指定在DataNode内外传输数据使用的最大线程数。官方将该参数的命名改为dfs.datanode.max.transfer.threads,默认值为4096,推荐值为8192,我们产线环境也是8192

8.NameNode处理RPC调用的线程数

dfs.namenode.handler.count

NameNode中用于处理RPC调用的线程数,默认为10。对于较大的集群和配置较好的服务器,可适当增加这个数值来提升NameNode RPC服务的并发度,该参数的建议值为:集群的自然对数 * 20

python -c 'import math ; print int(math.log(N) * 20)'

我们800+节点产线环境配置的是200~500之间

9.NameNode处理datanode 上报数据块和心跳的线程数

dfs.namenode.service.handler.count

用于处理datanode 上报数据块和心跳的线程数量,与dfs.namenode.handler.count算法一致

10.DataNode处理RPC调用的线程数

dfs.datanode.handler.count

DataNode中用于处理RPC调用的线程数,默认为3。可适当增加这个数值来提升DataNode RPC服务的并发度,线程数的提高将增加DataNode的内存需求,因此,不宜过度调整这个数值。我们产线环境设置的是10

11.DataNode最大传输线程数

dfs.datanode.max.xcievers

最大传输线程数 指定在 DataNode 内外传输数据使用的最大线程数。

这个值是指定 datanode 可同時处理的最大文件数量,推荐将这个值调大,默认是256,最大值可以配置为65535,我们产线环境配置的是8192。

12.读写数据时的缓存大小

io.file.buffer.size

–设定在读写数据时的缓存大小,应该为硬件分页大小的2倍

我们产线环境设置的为65536 ( 64K)

13.冗余数据块删除

在日常维护hadoop集群的过程中发现这样一种情况:

某个节点由于网络故障或者DataNode进程死亡,被NameNode判定为死亡,HDFS马上自动开始数据块的容错拷贝;当该节点重新添加到集群中时,由于该节点上的数据其实并没有损坏,所以造成了HDFS上某些block的备份数超过了设定的备份数。通过观察发现,这些多余的数据块经过很长的一段时间才会被完全删除掉,那么这个时间取决于什么呢?

该时间的长短跟数据块报告的间隔时间有关。Datanode会定期将当前该上所有的BLOCK信息报告给NameNode,参数dfs.blockreport.intervalMsec就是控制这个报告间隔的参数。

hdfs-site.xml文件中有一个参数:


dfs.blockreport.intervalMsec
3600000
Determines block reporting interval in milliseconds.

其中3600000为默认设置,3600000毫秒,即1个小时,也就是说,块报告的时间间隔为1个小时,所以经过了很长时间这些多余的块才被删除掉。通过实际测试发现,当把该参数调整稍小一点的时候(60秒),多余的数据块确实很快就被删除了

14.新增块延迟汇报

当datanode上新写完一个块,默认会立即汇报给namenode。在一个大规模Hadoop集群上,每时每刻都在写数据,datanode上随时都会有写完数据块然后汇报给namenode的情况。因此namenode会频繁处理datanode这种快汇报请求,会频繁地持有锁,其实非常影响其他rpc的处理和响应时间。

通过延迟快汇报配置可以减少datanode写完块后的块汇报次数,提高namenode处理rpc的响应时间和处理速度。


dfs.blockreport.incremental.intervalMsec
300

我们产线环境HDFS集群上此参数配置为500毫秒,就是当datanode新写一个块,不是立即汇报给namenode,而是要等待500毫秒,在此时间段内新写的块一次性汇报给namenode。

15.增大同时打开的文件描述符和网络连接上限

使用ulimit命令将允许同时打开的文件描述符数目上限增大至一个合适的值。同时调整内核参数net.core.somaxconn网络连接数目至一个足够大的值。

补充:net.core.somaxconn的作用

net.core.somaxconn是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。什么是backlog呢?backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,它会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。在Hadoop 1.0中,参数ipc.server.listen.queue.size控制了服务端socket的监听队列长度,即backlog长度,默认值是128。而Linux的参数net.core.somaxconn默认值同样为128。当服务端繁忙时,如NameNode或JobTracker,128是远远不够的。这样就需要增大backlog,例如我们的集群就将ipc.server.listen.queue.size设成了32768,为了使得整个参数达到预期效果,同样需要将kernel参数net.core.somaxconn设成一个大于等于32768的值。

大数据开发HDFS的Shell操作(开发重点)

大数据开发技术之HDFS-HA集群配置

大数据开发技术之被误删的HDFS文件如何有效恢复

大数据开发中相关HDFS的这几个问题应该知道

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
巴特勒伤退勇士大胜热火!库里19+11引7人上双 波杰24分热巴13中1

巴特勒伤退勇士大胜热火!库里19+11引7人上双 波杰24分热巴13中1

颜小白的篮球梦
2026-01-20 13:28:58
龙珠:一口气看完角色原型,中国元素真的很多!

龙珠:一口气看完角色原型,中国元素真的很多!

动漫心世界
2026-01-19 14:13:39
“妈妈面相说明问题”,3年级儿子还需要喂饭,网友:恶婆婆预定

“妈妈面相说明问题”,3年级儿子还需要喂饭,网友:恶婆婆预定

泽泽先生
2026-01-19 21:10:33
“两岸统一”突破点不在马英九,也不在国民党,可能在这个人身上

“两岸统一”突破点不在马英九,也不在国民党,可能在这个人身上

趣文说娱
2026-01-12 17:36:51
河北夫妻收留呆傻流浪汉,18年后流浪汉大喊:我想起我是谁了!

河北夫妻收留呆傻流浪汉,18年后流浪汉大喊:我想起我是谁了!

农村情感故事
2026-01-18 13:47:49
新生儿跌破800万,体制内黄金时代或终结?铁饭碗还会“铁”吗?

新生儿跌破800万,体制内黄金时代或终结?铁饭碗还会“铁”吗?

菊长秘书
2026-01-20 09:51:52
1955年,一名身体强壮的日本女人赤裸上身背着黑色编织袋站在海边

1955年,一名身体强壮的日本女人赤裸上身背着黑色编织袋站在海边

忠于法纪
2026-01-07 17:46:09
歌后王菲被曝猛料!十年向嫣然天使捐款三千多万,还都是匿名捐赠

歌后王菲被曝猛料!十年向嫣然天使捐款三千多万,还都是匿名捐赠

谈史论天地
2026-01-20 10:38:26
世界上最离谱的午饭都在滑雪场

世界上最离谱的午饭都在滑雪场

穷游网
2026-01-19 18:20:10
陈行甲回应俞敏洪150万年薪邀请:我加入新东方,他加入恒晖|封面头条

陈行甲回应俞敏洪150万年薪邀请:我加入新东方,他加入恒晖|封面头条

封面新闻
2026-01-20 11:49:04
马克龙拒绝加入加沙“和平委员会”

马克龙拒绝加入加沙“和平委员会”

扬子晚报
2026-01-20 11:26:28
赵少康举行新书发表会,蓝绿白大咖齐聚,郑丽文与其互动热络

赵少康举行新书发表会,蓝绿白大咖齐聚,郑丽文与其互动热络

海峡导报社
2026-01-20 12:04:03
研究了1400多名百岁老人后发现:做到这5点,你也能活过100岁

研究了1400多名百岁老人后发现:做到这5点,你也能活过100岁

DrX说
2026-01-13 16:53:24
贝克汉姆长子发文决裂:全家都在演戏!曝维多利亚贴身热舞太恶心

贝克汉姆长子发文决裂:全家都在演戏!曝维多利亚贴身热舞太恶心

乐悠悠娱乐
2026-01-20 11:05:37
据说全球仅20例!巴西一女子在同一晚与2名男子发生了关系

据说全球仅20例!巴西一女子在同一晚与2名男子发生了关系

忠于法纪
2025-12-04 11:25:07
约会聚餐,和王楚钦传绯闻?谁注意陈幸同表态,好友删除动态

约会聚餐,和王楚钦传绯闻?谁注意陈幸同表态,好友删除动态

乐聊球
2026-01-19 11:25:20
传奇谢幕!马内荣膺非洲杯MVP,回归成C罗冲冠关键!

传奇谢幕!马内荣膺非洲杯MVP,回归成C罗冲冠关键!

田先生篮球
2026-01-19 10:27:28
2场7记三分再轰25分,火箭21岁射手撑起二阵!中产合同恐留不住他

2场7记三分再轰25分,火箭21岁射手撑起二阵!中产合同恐留不住他

熊哥爱篮球
2026-01-20 12:18:57
Model YL获“北上广深”认可,为什么越发达地区越喜欢特斯拉?

Model YL获“北上广深”认可,为什么越发达地区越喜欢特斯拉?

据说无据
2026-01-19 10:36:21
原来有这么多工作需要保密!网友:牺牲12年的爸爸竟然回来了!

原来有这么多工作需要保密!网友:牺牲12年的爸爸竟然回来了!

另子维爱读史
2026-01-16 18:29:22
2026-01-20 13:43:00
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

去年预亏60亿后再投百亿 两大车企紧抱华为

头条要闻

克罗地亚总统劝特朗普"考虑"斯瓦尔巴群岛 挪威急跳脚

头条要闻

克罗地亚总统劝特朗普"考虑"斯瓦尔巴群岛 挪威急跳脚

体育要闻

新的时代!东契奇生涯首夺全明星票王 此前10年詹姆斯7次夺魁

娱乐要闻

贝克汉姆长子发文决裂:全家都在演戏

财经要闻

2026年,7个趋势正在爆发

汽车要闻

奇瑞张贵兵:墨甲不做秀技术的企业 只做痛点终结者

态度原创

旅游
时尚
本地
数码
教育

旅游要闻

红墙白雪蜡梅香,明孝陵定格中式美学“天花板”

码住抄作业!春节见人不翻车就靠这8样!

本地新闻

云游辽宁|漫步千年小城晨昏,“康”复好心情

数码要闻

Toall莲偶科技公布3.1mm 400g超薄超轻平板电脑Paper

教育要闻

经常做3件事,孩子的记忆力远超同龄人

无障碍浏览 进入关怀版