Live data from Hacker News

Don't use Hadoop when your data isn't that big

chrisstucchio.com

141–150 of 235 posts

Re: Don't use Hadoop when your data isn't that big

#141
post #112

On a related note, I find it amusing that people seem to think that "Big Data == Hadoop". In actuality, there are plenty of other approaches to scaling out clusters to handle large jobs, including MPI and OpenMP, as well as BSP (Bulk Synchronous Parallel)[3] frameworks. [1]: http://en.wikipedia.org/wiki/Message_Passing_Interface [2]: http://en.wikipedia.org/wiki/OpenMP [3]: http://en.wikipedia.org/wiki/Bulk_synchrono…

Why do you find this amusing?

I find it amusing that people are so sheep-like in the way that the herd mentality just takes over. To be fair, I am not claiming any sort of immunity from this effect, I am as guilty of it as the next person ... but it is quite funny in a sad way when you are able to step back and recognise it.

Re: Don't use Hadoop when your data isn't that big

#142

I love how whoever mods this site now doesn't even have to follow their own rule about not editorializing headlines. Mods: Don't be hypocrites. If you're going to enforce your "only use the source title" trash on us, follow it yourself. Original title: "Don't use Hadoop - your data isn't that big" Mod-invented title: "Don't use Hadoop when your data isn't that big"

I've also been sort of feeling like titles get rewritten just for the sake of being rewritten these days. I understand the need to combat sensationalism, but this sort of edit really takes away the writer's voice.

Re: Don't use Hadoop when your data isn't that big

#143
post #135
post #131

Earlier quoted context omitted.

> "Hadoop is not a database!" Nor does the essay claim that Hadoop is a database. > "If your problem fits this, Hadoop absolutely rocks" The essay points out that most systems which do use Hadoop don't actually fit the Hadoop model, and that other 'mature application infrastructures' would be more effective than Hadoop. You misinterpreted it to mean the converse. It also agrees with you that there are cases where "Ha…

Sorry, I didn't mean to offend you in any way! First, I really don't like if somebody by default compares Hadoop with SQL and this is a widespread confusion - they are completely different beasts; in fact an extension called Hive gives Hadoop + HTable an SQL-like syntax. However Hadoop is a parallel, batch-processing platform. Hadoop is slow-responding, you can't even talk about latency because a single task takes a…

> "I really don't like if somebody by default compares Hadoop with SQL"

The first comparison was to Scala, and then to SQL. The main comparison was to SQL and a Python script. While it does talk more about SQL than other solutions, I don't see that as a default comparison.

> "For those, the in-memory, GPGPU, streams are much better"

I'll go off on a bit of philosophical tangent here. Yes, GPGPUs can be more effective for the task I'm doing, since I'm actually memory bound. However, GPGPUs require dedicated hardware, while the code I work is effective even on laptops with limited GPUs, including web servers.

Ideologically, I prefer to enable single-person developers, and scientists who do not have much training in hardware and network administration. For that situataion, GPGPUs are not "much better", because so long as the performance is fast enough, it doesn't need to be faster. And 100 ms is "fast enough."

> "This way you don't need to transfer a lot of data"

True. But to point out, I used the traditional approach of developing a file format which can be memory-mapped directly to my internal data structures, and a search algorithm which doesn't need to search the entire data set before loading it. These optimizations aren't synergistic with how I understand how Hadoop works.

> Hadoop's tragedy ... mostly driven by technologically clueless people

The author of the essay agrees with you. Here's the P.P.S.:

"I don’t intend to hate on Hadoop. I use Hadoop regularly for jobs I probably couldn’t easily handle with other tools. ... Hadoop is a fine tool, it makes certain tradeoffs to target certain specific use cases. The only point I’m pushing here is to think carefully rather than just running Hadoop on The Cloud in order to handle your 500mb of Big Data at an Enterprise Scale."

This is why I don't think you actually disagree with the author.

> Think about your case for chemical structures - is there any part of your algorithm that needs to be computed only occasionally but it's a lot of data to process?

Certainly, but there are two other important facets to that. 1) updates occur weekly, a full rebuild on a single core only takes 12 hours, and those 12 hours aren't critical, and 2) the deltas are relatively small and data from previous builds can be reused, so incremental updates should take about 30 minutes - I'll be working on that code in the next couple of weeks.

It's easier to have a cron job trigger a command-line program every week than to set up a Hadoop server.

Re: Don't use Hadoop when your data isn't that big

#144
post #136

Earlier quoted context omitted.

For some reason, wrapping my mind around this is like trying to fathom the Grand Canyon or the scale of the universe.

You and me both. It's made even worse when you learn that the first-level trigger removes 90% of the input stream before passing it to 2,000 computers, which in turn select only 0.2% of that data for storage and further analysis. https://lhcb-public.web.cern.ch/lhcb-public/en/Data%20Collec...

Fermilab in Batavia takes data from CERN over a 40Gb/s optical link (CMS Tier1, CERN CMS is Tier0); when I was there several years ago, we were staging the data to ~500TB of spinning disk in Nexans and cold storage were 2-3 Storagetek tape libraries the size of school busses.

Computing and particle physics is where awesome meet.

Re: Don't use Hadoop when your data isn't that big

#145
post #57

While I couldn't agree more with the general point of the article, I have some small additional comments. Just as a bit of background, I think that Chris would very much agree that I am not the intended recipient of this advice, and so my comments probably aren't keeping in the spirit of the article. I've spent the last 10+ years exclusively in very large HPC environments where the average size of the problem set is…

So many of these problems are IO bound to begin with. In fact, I don't think I have ever had a problem that wasn't ultimately IO bound. Hence the need to spend more time paying attention to the network infrastructure, and, ultimately, removing as much of it as possible from in between your storage and your compute infrastructure.

Re: Don't use Hadoop when your data isn't that big

#146
post #112

On a related note, I find it amusing that people seem to think that "Big Data == Hadoop". In actuality, there are plenty of other approaches to scaling out clusters to handle large jobs, including MPI and OpenMP, as well as BSP (Bulk Synchronous Parallel)[3] frameworks. [1]: http://en.wikipedia.org/wiki/Message_Passing_Interface [2]: http://en.wikipedia.org/wiki/OpenMP [3]: http://en.wikipedia.org/wiki/Bulk_synchrono…

Why do you find this amusing?

It's basically what w_t_payne said. It's amusing (in a sense) because it betrays such a lack of understanding of what's actually going on, and such a willingness to simply accept the "received wisdom" and not question it and think independently.

Re: Don't use Hadoop when your data isn't that big

#147
post #57

While I couldn't agree more with the general point of the article, I have some small additional comments. Just as a bit of background, I think that Chris would very much agree that I am not the intended recipient of this advice, and so my comments probably aren't keeping in the spirit of the article. I've spent the last 10+ years exclusively in very large HPC environments where the average size of the problem set is…

"Big Data starts at 1.5 PB [because that's what fits in memory on Blue Waters]" -- Bill Gropp On today's top HPC installations, it currently takes about an hour to read or write the contents of memory from/to global storage. If the workflow has broad dependencies (PDEs are especially bad, but lots of network analysis also fits the bill), it's much better to use more parallelism to run for a shorter period of time wit…

1.5 PB is pretty huge for most people outside of supercomputing. The biggest dataset I ever worked with fell some way short of that (It was approaching 1PB, I think, although we were not too sure how much data we had exactly, and it might have been slightly over, depending on how you measured). Even handling small(er) working sets could be a challenge in organisation, since we only had a small compute cluster (& associated infrastructure) to work with.

Re: Don't use Hadoop when your data isn't that big

#148

Hooray! Some sense at last. I have worked for at least 3 different employers that claimed to be using "Big Data". Only one of them was really telling the truth. All of them wanted to feel like they were doing something special. The sad thing is, they were all special, each in their own particular way, but none of what made each company magic and special had anything to do with the size of the data that they were hand…

Yes I've worked for a couple of outfits that did this over the years. It's usually down to who sold them the solution though. It's worst if the salesperson is external. The funniest has to be the engineering company which I used to work with (not for thank fuck) back in the 90's (when 100Gb was big data!). They managed to bag 2x full 42U racks full of HP N-Class HPUX UNIX kit, PDU systems and separate disk arrays for…

Yeah... it looks like my employer is going down the same route with an EMC Isilon NAS system.

We really just want high throughput for linear scans; possibly with a small amount of parallelism, which would argue for a fairly simple solution with as little cacheing as possible (ideally none whatsoever) ... but I cannot even tell (from the website & the literature that I can access) how these things are supposed to operate -- which is a worrying sign in itself.

Previously, I got good performance out of a SAN using a handful of NexSan SataBeasts -- which I would have recommended to use again, if anybody had bothered to ask.

:-)

Re: Don't use Hadoop when your data isn't that big

#149

I have been looking into building simple recommendation engine (i have at max million data rows) using Python. I looked into Crab ( https://github.com/muricoca/crab ) and it seems to not have updated for 2 years. Any suggestions for libraries or just use basic numpy/scipy and implement the algorithms?

Just implement the damn algorithms. Anything else is just another library to learn, and another tool to babysit.

Re: Don't use Hadoop when your data isn't that big

#150
post #13

"We don't have big data" or "our data is rather small" -- said no dev team ever. "Big data" is like "cloud" it is a cool label everyone applying to their system. Just like OO was in its time. Well once they applied the label they feel they need to live up to it so well "we gotta use what big data companies use" and they pick Hadoop. I've heard hadoop used when MySQL, SQLite or even flat files would have worked.

Sad but true.
Post reply on HN