原文地址:http://blog.csdn.net/dajuezhao/article/details/6797015
一、背景
1、最近在做hadoop的性能测试,采用了自带的Terasort的方式,但是在运行的过程中发现如果数据量过大,对硬盘I/O需求不小(通过Ganglia监控发现),因此,打算找找看是否有合适的配置来解决这样一类的问题,所以才有了这篇记录的文档。
2、在做修改之前,当然必须确认slave的多块硬盘没有做任何形式的raid。
二、修改配置
1、hdfs-site.xml中的
- <property>
- <name>dfs.data.dir</name>
- <value>/data1,/data2,/data3,/data4,/data5,/data6,/data7</value>
- <description>Determines where on the local filesystem an DFS data node
- should store its blocks. If this is a comma-delimited
- list of directories, then data will be stored in all named
- directories, typically on different devices.
- Directories that do not exist are ignored.
- </description>
- </property>
2、mapred-site.xml中的
- <property>
- <name>mapred.local.dir</name>
- <value>/data1/mapred/local,/data2/mapred/local,/data3/mapred/local,/data4/mapred/local,/data5/mapred/local,/data6/mapred/local,/data7/mapred/local</value>
- <description>The local directory where MapReduce stores intermediate
- data files. May be a comma-separated list of
- directories on different devices in order to spread disk i/o.
- Directories that do not exist are ignored.
- </description>
- </property>
三、总结
1、至于是不是要做raid,网上很多文章也写过,多数是说实现了软件的备份,我认为不仅如此,在主板支持的情况下,多硬盘多线程读写速度还是很可观的。
2、最后说一个,不做raid可以节约硬件的成本,虽然谈不上多贵,但是当数量大了之后价值就可观了。需要说明一下,我用的都是7200的SATA盘。