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

大数据开发基础之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.

相关推荐
热点推荐
三人行,必有我师

三人行,必有我师

贵圈真乱
2026-01-21 10:45:49
山东硬汉最爱的啤酒“白月光”,引爆一颗巨雷

山东硬汉最爱的啤酒“白月光”,引爆一颗巨雷

金错刀
2026-01-19 16:14:47
奇迹!3:0大胜10人越南,国足U23杀入决赛,赛后一幕:令人动容!

奇迹!3:0大胜10人越南,国足U23杀入决赛,赛后一幕:令人动容!

话体坛
2026-01-21 02:09:47
震撼!混乱、滥J、肮脏、卖Y…“牢A”揭露女留学生丑陋秘辛

震撼!混乱、滥J、肮脏、卖Y…“牢A”揭露女留学生丑陋秘辛

魔都囡
2026-01-21 08:30:18
蓝白迎战弹劾审查会,赖清德不出席,现场摆出“清德宗”看板

蓝白迎战弹劾审查会,赖清德不出席,现场摆出“清德宗”看板

海峡导报社
2026-01-21 09:52:03
马克龙戴墨镜参加达沃斯论坛,喊话特朗普:不会被吓倒

马克龙戴墨镜参加达沃斯论坛,喊话特朗普:不会被吓倒

鲁中晨报
2026-01-21 12:31:08
男子回应怒吼癌症妈妈碰瓷:母亲第二次想讹人,“只是尽我的责任,没什么值得称赞”

男子回应怒吼癌症妈妈碰瓷:母亲第二次想讹人,“只是尽我的责任,没什么值得称赞”

潇湘晨报
2026-01-21 11:09:49
1-3!哈兰德8场1球持续低迷,金球先生染红,曼城制造欧冠大冷

1-3!哈兰德8场1球持续低迷,金球先生染红,曼城制造欧冠大冷

我的护球最独特
2026-01-21 03:39:44
这一次,欧洲政客们彻底跪了!

这一次,欧洲政客们彻底跪了!

浪子的烟火人间
2026-01-21 07:03:53
中央委员辞去省人大常委会主任职务,还有三人辞去副省长职务

中央委员辞去省人大常委会主任职务,还有三人辞去副省长职务

上观新闻
2026-01-21 11:54:06
赚了一百万的外卖员

赚了一百万的外卖员

中国青年报
2026-01-21 07:14:51
刚刚,MiniMax来承包你的桌面了

刚刚,MiniMax来承包你的桌面了

机器之心Pro
2026-01-20 20:03:17
决赛未开始!中国队大战日本 传来4个利好 比赛时间+直播平台如下

决赛未开始!中国队大战日本 传来4个利好 比赛时间+直播平台如下

侃球熊弟
2026-01-21 03:57:09
恶劣!越南球员拳击拜合拉木 拒不向中国道歉 另1人拳打脚踢逃红

恶劣!越南球员拳击拜合拉木 拒不向中国道歉 另1人拳打脚踢逃红

念洲
2026-01-21 09:35:38
卖不动了?钻石价格大跌,巨头宣布:降价!十年前1.8万元买的钻戒,如今只能卖180元,同期黄金价格涨超400%

卖不动了?钻石价格大跌,巨头宣布:降价!十年前1.8万元买的钻戒,如今只能卖180元,同期黄金价格涨超400%

每日经济新闻
2026-01-20 16:22:28
汉族的风俗和禁忌,不需要尊重么?

汉族的风俗和禁忌,不需要尊重么?

疫苗与科学
2026-01-21 07:06:23
公安厅厅长,辞去副省长职务

公安厅厅长,辞去副省长职务

警界君
2026-01-21 12:27:02
拒挂国旗、订单全给日韩,被停止合作封锁航线的长荣,今咎由自取

拒挂国旗、订单全给日韩,被停止合作封锁航线的长荣,今咎由自取

现代小青青慕慕
2026-01-21 08:06:47
外媒评2026最丑新车:两款中国车上榜!

外媒评2026最丑新车:两款中国车上榜!

电动知家
2026-01-20 13:39:05
继提议给格陵兰岛民众发钱后,特朗普又提“新办法”:波多黎各式自治邦?

继提议给格陵兰岛民众发钱后,特朗普又提“新办法”:波多黎各式自治邦?

红星新闻
2026-01-20 15:54:21
2026-01-21 14:24:49
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

中芯国际等巨头集体提价,8英寸芯片最高涨20%

头条要闻

特朗普:对美国的真正威胁是联合国和北约

头条要闻

特朗普:对美国的真正威胁是联合国和北约

体育要闻

只会防守反击?不好意思,我们要踢决赛了

娱乐要闻

李亚鹏2天获1291万网友力挺

财经要闻

消失的投资金 起底华文映像电影投资骗局

汽车要闻

新一代理想L9电池加码体型加大 重夺高端话语权

态度原创

数码
家居
教育
健康
公开课

数码要闻

消息称华为前段时间注册「赛道传奇」商标是代号Chitu的新手表

家居要闻

褪去浮华 触达松弛与欣喜

教育要闻

英语背单词:戳破自然拼读的谎言,字母拼读法不是死记硬背

血常规3项异常,是身体警报!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版