On Jun 11, 2008, at 11:53 AM, Elia Mazzawi wrote:
we concatenated the files to bring them close to and less than 64mb
and the difference was huge without changing anything else
we went from 214 minutes to 3 minutes !
*smile*
How many reduces are you running now? 1 or more?
Arun
Elia Mazzawi wrote:
Thanks for the suggestions,
I'm going to rerun the same test with close to < 64Mb files and 7
then 14 reducers.
we've done another test to see if more servers would speed up the
cluster,
with 2 nodes down took 322 minutes on the 10X data thats 5.3 hours
vs 214 minutes with all nodes online.
started the test after hdfs marked the nodes as dead, and there
were no timeouts.
332/214 = 55% more time with 5/7 = 71% servers.
so our conclusion is that more servers will make the cluster faster.
Ashish Thusoo wrote:
Try by first just reducing the number of files and increasing the
data
in each file so you have close to 64MB of data per file. So in
your case
that would amount to about 700-800 files in the 10X test case
(instead
of 35000 that you have). See if that give substantially better
results
on your larger test case. For the smaller one, I don't think you
will be
able to do better than the unix command - the data set is too
small.
Ashish
-----Original Message-----
From: Elia Mazzawi [mailto:[EMAIL PROTECTED] Sent:
Tuesday, June 10, 2008 5:00 PM
To: core-user@hadoop.apache.org
Subject: Re: hadoop benchmarked, too slow to use
so it would make sense for me to configure hadoop for smaller
chunks?
Elia Mazzawi wrote:
yes chunk size was 64mb, and each file has some data it used 7
mappers
and 1 reducer.
10X the data took 214 minutes
vs 26 minutes for the smaller set
i uploaded the same data 10 times in different directories ( so
more files, same size )
Ashish Thusoo wrote:
Apart from the setup times, the fact that you have 3500 files
means that you are going after around 220GB of data as each
file would have
atleast one chunk (this calculation is assuming a chunk size of
64MB and this assumes that each file has atleast some data).
Mappers would
probably need to read up this amount of data and with 7 nodes
you may
just have
14 map slots. I may be wrong here, but just out of curiosity
how many
mappers does your job use.
Don't know why the 10X data was not better though if the bad
performance of the smaller test case was due to fragmentation.
For that test did you also increase the number of files, or did
you simply increase the amount of data in each file.
Plus on small sets (of the order of 2-3 GB) of data unix
commands can't really be beaten :)
Ashish
-----Original Message-----
From: Elia Mazzawi [mailto:[EMAIL PROTECTED] Sent:
Tuesday, June 10, 2008 3:56 PM
To: core-user@hadoop.apache.org
Subject: hadoop benchmarked, too slow to use
Hello,
we were considering using hadoop to process some data, we have
it set
up on 8 nodes ( 1 master + 7 slaves)
we filled the cluster up with files that contain tab delimited
data.
string \tab string etc
then we ran the example grep with a regular expression to count
the number of each unique starting string.
we had 3500 files containing 3,015,294 lines totaling 5 GB.
to benchmark it we ran
bin/hadoop jar hadoop-0.17.0-examples.jar grep data/* output '^
[a-zA-Z]+\t'
it took 26 minutes
then to compare, we ran this bash command on one of the nodes,
which produced the same output out of the data:
cat * | sed -e s/\ .*// |sort | uniq -c > /tmp/out (sed
regexpr is tab not spaces)
which took 2.5 minutes
Then we added 10X the data into the cluster and reran Hadoop,
it took
214 minutes which is less than 10X the time, but still not that
impressive.
so we are seeing a 10X performance penalty for using Hadoop vs
the system commands, is that expected?
we were expecting hadoop to be faster since it is distributed?
perhaps there is too much overhead involved here?
is the data too small?