Cloud Industry News Analysis & Insights on Ulitzer

Tim Negris

Subscribe to Tim Negris: eMailAlertsEmail Alerts
Get Tim Negris: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Big Data on Ulitzer

BigData: Article

Hadoop is the Answer! What is the Question?

Don't Believe the Hype.

Disclosure: In addition to being a Sys-Con contributor, I am the VP of Marketing at 1010data, a provider of a cloud-based Big Data analytics platform that provides direct, interactive analytical access to large amounts of raw structured and semi-structured data for quantitative analysts.

So, 1010data doesn't have much actual overlap with Hadoop, which provides programmatic batch job access to linked content files for text, log and social graph data analytics.  I must confess, I have not been paying much attention to Hadoop.

But, while doing research for my upcoming presentation on Cloud-based Big Data Analytics at Cloud Expo in NYC (3:00 on Thursday), I uncovered an apocrypha in the making, a rich mythology about a yellow elephant whose name seems to have become the answer to every question about Big Data.  Got a boatload of data?  Store it in Hadoop.  Want to search and analyze that data?  Do it with Hadoop.  Want to invest in a technology company?  If it works with Hadoop, get out the checkbook and get in line.

And then, I was on a Big Data panel at the Cowen 39th Annual Technology, Media and Telecom Conference this week and several of my fellow panelists were from companies that in one way or another had something to do with Hadoop.

So, as a public service to prospective message victims of the Hadoop hype, I decided to try to figure out what Hadoop really is and what it is really good for.  No technology gets so popular so quickly unless it is good for something, and Hadoop is no exception.  But Hadoop is not the solution to every Big Data problem.  Nothing is.  Hadoop is a low-level technology that must be programmed to be useful for anything.

It is a relatively immature (V0.20.x) Apache open source project that has spawned a number of related projects and a growing number of applications and systems built on top of the crowd-sourced Hadoop code.  I have discovered that many people say "Hadoop" when they really mean Hadoop plus things that run on or with it.  For instance, "Hadoop is an analytical database" means Hadoop plus Hive plus Pig.  The ever-lengthening "Powered By" list is here.

Despite their general enthusiasm for the framework, though, many Hadoop developers also stress the difficulty of programming applications for  it, including Rick Wesel, the developer of the Cascading MapReduce library and API, who writes on his blog,

The one thing Hadoop does not help with is providing a simple means to develop real world applications. Hadoop works in terms of MapReduce jobs. But real work consists of many, if not dozens, of MapReduce jobs chained together, working in parallel and serially.

MapReduce is a patented software framework developed by Google and underlying Hadoop.  Its Wikipedia enry describes the two parts like this:

"Map" step: The master node takes the input, partitions it up into smaller sub-problems, and distributes those to worker nodes. A worker node may do this again in turn, leading to a multi-level tree structure. The worker node processes that smaller problem, and passes the answer back to its master node.

"Reduce" step: The master node then takes the answers to all the sub-problems and combines them in some way to get the output - the answer to the problem it was originally trying to solve.

So what is Hadoop?  Straight from the elephant's mouth,

Apache Hadoop is a framework for running applications on large cluster built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both Map/Reduce and the distributed file system are designed so that node failures are automatically handled by the framework.

Said more simply, Hadoop lets you chop up large amounts of data and processing so as to spread it out over a dedicated cluster of commodity server machines, providing high scalability, fault tolerance and efficiency in processing operations on large quantities of unstructured data (text and web content) and semi-structured data (log records, social graphs, etc.)  In as much as a computer exists to process data, Hadoop in effect turns lots of cheap little computers into one big computer that is especially good for analyzing indexed text.

By far Hadoop's most generally interesting and newsworthy triumph to date has been helping IBM's Watson supercomputer beat the best humans on Jeopardy.  That role is dissected here.

Aside from winning game shows, though, what is Hadoop good for?   Speaking of the Big Data biggie, IBM, here is Big Blue's answer to that question by way of a pithy Judith Hurwitz tweet:

 

But, Hadoop is immature - not yet at Version 1! - open source code created and edited by many different pro bono programmers, without a commercial binding of business process, coding disciplines, or direct market dynamics.  In other words, it is what it is and some of the functions that are hard or tedious to code, even if nonetheless badly needed, go wanting.  (Read tales of "zombie tasks" and other terrors from the "Dark Side of Hadoop" here.)

In any case, though, Hadoop is very versatile and many smart people and companies have found an amazing variety of uses to put it to.  And it is always fun to watch the tech world wind itself up around a new topic.  Big Data is the new black and Hadoop is the "it" elephant.

But it isn't good for everything.  See http://wiki.apache.org/hadoop/HadoopIsNot or read Ricky Ho's excellent blog post, which shows how Hadoop's design makes it a poor choice for things like fast, interactive, ad hoc analysis of large amounts of frequently updated structured (transactional) data, as for, say, all the daily trades in a busy stock exchange or large retail chain.

As Ho explains it, Hadoop spreads data out in file chunks on a number of computers and it breaks programming down into many small tasks, also spread across those machines and run in parallel as a batch job.  While a job is running, the data it is working on cannot be updated and, because the processes must communicate with each other and they are spread out across multiple networked computers, there is considerable network-related latency in the execution of the job.

Hadoop grew out of work done by both Yahoo and Google, which betrays its essence of purpose: gathering, storing and indexing, vast amounts of chunks of text and semi-structured data, understanding the relationships between those chunks, and finding them quickly when needed.  So, it is not surprising that the most impressive uses of Hadoop we have seen are in the area of analyzing so called "social data".

That's the voluminous accumulation of comments, web pages, and tweets, the identities, locations, relationships and other attributes associated with the people, sites, things and processes referenced in that data.  There is much to be learned from such data.  But when there is a lot of it, just putting it somewhere and searching and analyzing it efficiently across multiple computers and disks is difficult and Hadoop and many of its best applications are built for making that easier.

But, there are numerous products now layered on top of Hadoop that make it function as a tabular relational database and other forms of storage.  This enables customers to reuse SQL code they have already developed and to develop new query code in a language they know.  And it enables Hadoop to go pilot fish or Trojan horse on Oracle and MySQL.  But, using SQL as an access language and materializing data in unordered, joined, indexed tables does not play to Hadoop's natural strengths.

Hive is a Hadoop project that relationalizes Hadoop for data warehousing and analytics and here is what one apparently experienced crowdsourcer said about it on the Stack Overflow site.

Hive is based on Hadoop which is a batch processing system. Accordingly, this system does not and cannot promise low latencies on queries. The paradigm here is strictly of submitting jobs and being notified when the jobs are completed as opposed to real time queries. As a result it should not be compared with systems like Oracle where analysis is done on a significantly smaller amount of data but the analysis proceeds much more iteratively with the response times between iterations being less than a few minutes. For Hive queries response times for even the smallest jobs can be of the order of 5-10 minutes and for larger jobs this may even run into hours.

Cutting through the Hadoop hype, if you are looking to query, report or analyze large amounts of unstructured data or you need to build a scalable SQL data warehouse, and in either case you can tolerate the latency and batch processing is an acceptable model for your situation, Hadoop and its many adjuncts may solve your problem.

But, if you need to do interactive analytics on large amounts of raw tabular and semi-structured data, Hadoop is not what you are looking for.  If you want to do it in a managed cloud, you could look at 1010data, on dedicated hardware, check Teradata, or on commodity hardware, Vertica might be worth a look.

 

More Stories By Tim Negris

Tim Negris is SVP, Marketing & Sales at Yottamine Analytics, a pioneering Big Data machine learning software company. He occasionally authors software industry news analysis and insights on Ulitzer.com, is a 25-year technology industry veteran with expertise in software development, database, networking, social media, cloud computing, mobile apps, analytics, and other enabling technologies.

He is recognized for ability to rapidly translate complex technical information and concepts into compelling, actionable knowledge. He is also widely credited with coining the term and co-developing the concept of the “Thin Client” computing model while working for Larry Ellison in the early days of Oracle.

Tim has also held a variety of executive and consulting roles in a numerous start-ups, and several established companies, including Sybase, Oracle, HP, Dell, and IBM. He is a frequent contributor to a number of publications and sites, focusing on technologies and their applications, and has written a number of advanced software applications for social media, video streaming, and music education.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.