鼎晖之HDFS集群优化003篇

  

2019/3/21星期四

  

1,操作系统级别优化选择Linux的文件系统为:XFS文件系统

  

2,预读缓冲
预读技术可以有效的减少磁盘寻道次数和应用的I/O等待时间,增加Linux文件系统预读缓冲区的大小(默认为256个行业,128 kb),可以明显提高顺序文件的读性能,建议调整到1024年或2048年行业。预读缓冲区的设置可以通过blockdev命令来完成。

  

[root@NewCDH-0——141 ~ # df th
文件系统类型大小使用效果使用%安装在
/dev/mapper/centos-root xfs 50克45克5.7 g/
89% devtmpfs devtmpfs 7.8 g 0 0% 7.8 g/dev
tmpfs tmpfs 7.8 g 0 7.8 g 0%/dev/shm
tmpfs tmpfs 7.8 g 49米7.8 g/运行
1% tmpfs tmpfs 7.8 g 0 0% 7.8 g/sys/fs/cgroup
/dev/mapper/centos-home xfs 46克342 46克1%/home
/dev/sda1 xfs 497米121米377米/boot 25%
tmpfs tmpfs 1.6 g 0 0% 1.6 g/运行/user/0
cm_processes tmpfs 7.8 g 58米7.7 g 1%/运行/cloudera-scm-agent/过程
tmpfs tmpfs 1.6 g 0 0% 1.6 g/运行/user/997
[root@NewCDH-0——141 ~ # blockdev——getra/dev/mapper/centos-root
8192
[root@NewCDH-0——141 ~ # blockdev——getra/dev/mapper/centos-home
8192

  

修改的命令为:
blockdev——塞特拉- 2048牌汽车/dev/mapper/centos-home

  

3,放弃RAID和LVM磁盘管理方式,选用文件
文件
文件是在一个底板上安装的带有多个磁盘驱动器的存储设备,文件没有使用前端逻辑来管理磁盘数据,每个磁盘可实现独立并行的寻址,将DataNode部署在配置文件设备的服务器上可提高DataNode性能。

  

4,内存调优交换

  

5,调整内存分配策略

  

6。网络参数调优

  

二。HDFS集群性能优化
归档
查看归档文件//适合管理HDFS的大量小文件
[root@NewCDH-0——141 ~ # sudo - u HDFS hadoop fs - ls哈尔:///newdata。哈尔
发现1项
drwxr-xr-x - hdfs超群0 2018-03-19 18:37 har:///newdata。哈尔/mjh
[root@NewCDH-0——141 ~ # sudo - u hdfs hadoop fs - ls哈尔:///newdata。哈尔/mjh
发现3项
drwxr-xr-x - hdfs超群0 2018-03-19 18:37哈尔:///newdata。哈尔/mjh shiyanshuju
-rw-r - r - 3 hdfs超群17 2018-03-19 18:37哈尔:///newdata.har/mjh/测试。txt
-rw-r - r - 3 hdfs超群12 2018-03-19 18:37哈尔:///newdata.har/mjh/test2.txt

  

压缩   

三.HDFS集群配置优化
1, dfs.namenode.handler.count NameNode的服务器线程的数量。
NameNode中用于处理RPC调用的线程数,默认为32。对于较大的集群和配置较好的服务器,可适当增加这个数值来提升NameNode RPC服务的并发度。
服务线程个数,调大一些,一般原则是将其设置为集群大小的自然对数乘以20日,即20 logn, N为集群大小N集群服务器数量
(我的HDFS集群配置是:12 8 t硬盘,32核心,128克内存空间。)此值设置为:20 log12=120
4个节点话就是20 log4=40
//这个部分在鼎晖官方网站中有新的解释
在HDFS中
dfs.namenode.service.handler.count和dfs.namenode.handler.count——对于每个NameNode,设置为ln(此HDFS服务中的DataNode数)
20。
//我们DataNode 4个节点,那么
NameNode服务处理程序计数
原文为:dfs.namenode.service.handler.count和dfs.namenode.handler.count——对于每个NameNode,设置为ln(这HDFS的DataNode服务)20
参考链接:https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cm_mc_autoconfig.html
中的HDFS通用规则一般规则
参考链接:论dfs.namenode.handler.count配置参数的总要性
https://blog.csdn.net/turk/article/details/79723963
公式为:
python - c的进口数学;打印int (math.log (N)
20) N '
#集群服务器数量
//4个节点为27日计算过程为
[root@cdh -主配置)- 130 - 201 # python - c '进口数学;打印int (math.log (4) 20)的27个

我们线上44个HDFS节点
[root@cdh -主配置)- 130 - 201 # python - c '进口数学;打印int (math.log (44)
20)
75

  

2, dfs.datanode.handler。数:3 DataNode服务器线程数。
DataNode中用于处理RPC调用的线程数,默认为3。可适当增加这个数值来提升DataNode RPC服务的并发度(推荐值:20)。注意:线程数的提高将增加DataNode的内存需求,

  

3 dfs。复制复制因子默认为3不变

  

4, dfs.block。大小HDFS块大小默认128
数据块设置太小会增加NameNode的压力。数据块设置过大会增加定位数据的时间。这个值跟你的磁盘转速有关,我之前在的博客里有解释为什么是128米,其实这个跟磁盘的转速有关。我们可以自定义这个块大小,考虑2个因素,第,一查看你的集群文件大致范围都是多大?如果文件基本上都是64米~ 128米左右的话,建议你不要修改。如果大部分文件都在200米~ 256米之间的话,你可以将配置块大小改为256年,当然你也得考虑你的磁盘读写性能。

鼎晖之HDFS集群优化003篇