Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108656
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-16 09:51
个人简介

啄木鸟专吃虫,故名啄木鸟。

分类: HADOOP

2014-08-11 11:02:14

1、最近在做hadoop的性能测试,采用了自带的Terasort的方式,但是在运行的过程中发现如果数据量过大,对硬盘I/O需求不小(通过Ganglia监控发现),因此,打算找找看是否有合适的配置来解决这样一类的问题,所以才有了这篇记录的文档。

2、在做修改之前,当然必须确认slave的多块硬盘没有做任何形式的raid。


二、修改配置

1、hdfs-site.xml中的

  1. <property>  
  2.   <name>dfs.data.dirname>  
  3.   <value>/data1,/data2,/data3,/data4,/data5,/data6,/data7value>  
  4.   <description>Determines where on the local filesystem an DFS data node  
  5.   should store its blocks.  If this is a comma-delimited  
  6.   list of directories, then data will be stored in all named  
  7.   directories, typically on different devices.  
  8.   Directories that do not exist are ignored.  
  9.   description>  
  10. property>  
这个配置注意看就明白,每个/data1就是一个硬盘目录,中间采用英文的逗号分隔。其中写的英文说明也比较清楚。

2、mapred-site.xml中的

  1. <property>  
  2.   <name>mapred.local.dirname>  
  3.   <value>/data1/mapred/local,/data2/mapred/local,/data3/mapred/local,/data4/mapred/local,/data5/mapred/local,/data6/mapred/local,/data7/mapred/localvalue>  
  4.   <description>The local directory where MapReduce stores intermediate  
  5.   data files.  May be a comma-separated list of  
  6.   directories on different devices in order to spread disk i/o.  
  7.   Directories that do not exist are ignored.  
  8.   description>  
  9. property>  
这 个参数的主要中做就是在MR的过程中,将一些需要临时写到本地硬盘的数据分开写到多个盘中,降低各个硬盘的I/O压力,提升速度。之所以发现这个问题也是 在MR的过程中通过ganglia发现一个硬盘的I/O压力巨大无比,而其他硬盘没有负载,所以才会发现需要修改这个配置。Ganglia真是个好东西 啊!


三、总结

1、我在做的过程中主要就修改了这2个参数提升多硬盘的性能,其他的还没看到,如果有还希望大家指出说明。

2、至于是不是要做raid,网上很多文章也写过,多数是说实现了软件的备份,我认为不仅如此,在主板支持的情况下,多硬盘多线程读写速度还是很可观的。

阅读(1016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~