hdfs优化

hdfs的优化主要包括两方面:
一、hdfs本身的优化,常见项有
1.1 文件块block的大小设置:
(1). 数据块的备份数(复制因子,默认3)
(2). HDFS数据块的大小,默认值是128M(hdfs的大小应当根据两个因素来确定,一个是系统中常见文件的大小,一个是系统硬盘的速度,最优值应当接近硬盘速度)
1.2 hdfs小文件归档,hdfs中可能存储了大量的小文件,及其影响性能,我们可以对其进行归档,生成har文件,将小文件合并为一个块大小的har文件
(执行:Hadoop archive–archiveName myhar.har –p /user/Ubuntu /user/my
查看:Hdfs dfs –lsrhar:///user/my/myhar.har
解归档:Hdfs dfs –cphar:///user/my/my.har /user/your)
1.3 选用合适的压缩格式 我们采用的是 默认压缩格式+ORC 格式(ORC和parquet格式对比,join性能极高,压缩比高)
1.4 NameNode中用于处理RPC调用的线程数,默认为10; (dfs.namenode.handler.count)
1.5 DataNode中用于处理RPC调用的线程数,默认为3; (dfs.datanode.handler.count)
1.6 HDFS数据存储目录。将数据存储分布在各个磁盘上可充分利用节点的I/O读写性能,建议多个; (dfs.datanode.data.dir)
1.7 Hadoop临时目录,默认为系统目录/tmp,推荐多个,可提高HDFS和MapReduce的I/O效率; (hadoop.tmp.dir)
1.8 HDFS文件缓冲区大小,默认为4096(即4K);( io.file.buffer.size)
1.9 HDFS清理回收站的时间周期,单位为分钟。默认为0,一般设置为4~7;(fs.trash.interval)
1.x DataNode保留空间大小,单位为字节保留部分磁盘空间工其他应用程序使用(dfs.datanode.du.reserved)
1.x 启用机架感知(较大的集群,建议启用HDFS的机架感应功能,使HDFS优化数据块备份的分布, 节点较少时不开启)
1.x datanode 可同時处理的最大文件数量,推荐将这个值调大,默认是256,最大值可以配置为65535;(dfs.datanode.max.xcievers)
1.x 避免脏读写操作(不使用失效的datanode数据) (dfs.namenode.avoid.read.stale.datanode;dfs.namenode.avoid.write.stale.datanode)
二、linux服务器为配合HDFS进行的优化
1.1 优化文件系统(推荐使用EXT4和XFS文件系统,相比较而言,更推荐后者,因为XFS已经帮我们做了大量的优化。为服务器存储目录挂载时添加noatime属性)
1.2 预读技术可以有效的减少磁盘寻道次数和应用的I/O等待时间,增加Linux文件系统预读缓冲区的大小(默认为256 sectors,128KB),可以明显提高顺序文件的读性能,
建议调整到1024或2048 sectors。预读缓冲区的设置可以通过blockdev命令来完成。
1.3 放弃RAID和LVM磁盘管理方式,选用JBOD
1.4 内存调优,避免使用swap分区,通过配置降低swap使用的可能性。
1.5 调整内存分配策略
1.6 网络参数调优

#以上大部分为互联网上搜集后整理的,但是因为时间较久,我也想不起来从哪转载的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值