on August 25, 2012
I had read all the positive reviews and really had high hopes for the book, waited for the 3rd edition thinking it would be current, but I've mainly felt frustration in reading it once past the first few chapters.
Reference to the Bible in other reviews are apt. The book is a mishmash of chapters with a wide variety of styles and intents. The writing giving the overview is great. But other chapters are a reference manual dump with little motivation. Other chapters tried to be guided tutorial, but lacked in important details (or were out dated by changes). Wish it could have been written with a clearer editorial point of view, or better organized in sections with similar purposes.
Keeping up with a such a fast moving project with a paperback book is no doubt a difficult task. I didn't feel the book did a good job of dealing with the changes that happened with the shift to 1.x .
Most frustrating were the mentions of the "book's website" as a source of up-to-date information. Which website? (hadoopbook.com, oreilly.com, github.com). Wouldn't it make sense to use a URL instead of the phrase "book's website?"
Minor complaint, don't like the code listings without filenames.
Expect to find a lot of time looking for stuff on the web that should have been included in the book or at least documented with a concrete URLs.
There are certainly example of truly fine technical writing in the book. Just wish that level could have been maintained through out the book.
on September 19, 2012
I bought this book as a very experienced programmer but no prior experience with Hadoop, which I need to come up to speed on for a new project. I am extremely disappointed in the book and feel I wasted my money. If there's one thing you want from a book on a new technology, it's the ability to get a basic "Hello World" equivalent program running, from which you can then start iterating. This book completely falls down on this most basic requirement - when you get to the very first example program in the book, it tells you that you need to first compile a bunch of example code from the book's website. That shouldn't be required, but ok, whatever. Then when you go to the book's website, you are told that you first need to install a bunch of extra stuff covered later in the book before you can compile the libraries apparently needed to get anything at all to run. This really makes no sense at all - there's no way I should be having to read all the later chapters to figure out what these things are in order to get my very first example program running. Tossed it into the trash and off in search of a resource done by someone who understands how to structure a tutorial properly.
on January 6, 2013
If you're looking to learn about what Hadoop is, all of the buzzwords/terms you've heard about (i.e. HDFS, MapReduce), and get an overview of software in the Hadoop ecosystem (Pig, Hive, etc.) this is a good book that will give you a good overview and pointers in the right direction.
However, the book isn't going to give you a lot of detail on programming MapReduce and things like that.
In other words, it's a good breadth book, not a good depth book. So YMWV depending on what you're looking for.
I bought the previous edition of this book and gave it 4 stars. I bought this newer edition looking for information about Hadoop 2.0, Yarn, and all of the new stuff coming out. It provided a little bit of information about this, but overall was lacking in these details. So I notched it down 1 star because of that. It was just too much duplicate information from the prior edition.
on February 11, 2013
I bought this book for a project at work, to prototype a log analysis system using Hadoop. I haven't bought very many technical books in the last few years, but the quality of most online documentation for Hadoop is poor and books seemed like a better option. This book is considered the "bible" for Hadoop. It was useful, and I kept it open on my desk for quite a while as I worked to get the infrastructure set up. Consider it a high-level intro to lots of different Hadoop topics, and you'll be happy with it. Just don't expect it to answer all of your questions. You'll probably still end up doing a lot of digging through other online sources, because the Hadoop ecosystem is large and complicated, and no book can really cover all of it. Besides this book, I also bought Hadoop In Action (not quite as big as this book, but a useful counter-point) and Data Intensive Text Processing With MapReduce (which gave me a good intro to the Map Reduce algorithm, but wasn't that useful once I had a general idea what was going on).
on March 5, 2014
This book is really difficult to understand on the first attempt. My husband and i went through many other tutorials before starting to read this one. Actually we tried learning hadoop starting from simple hadoop wiki page, wiki.apache.org, hadoop.apache.org, yahoo materials, documents from authors like Jimmy Lin and Chris Dyer , free you tube tutorials and so on.
Then when we started learning from this book, we were able to understand the concepts quite vividly in the beginning 2 chapters yet we were crawling when we reached chapter 4 of Hadoop:Definitive Guide. We got really frustrated and stopped reading this book and decided not to continue it again. But later realizing that it is the very foundation of Hadoop we had to move on.So left with no other option we started with a different plan. This time we started with HIVE.It was quite an easy chapter to our surprise.Then we went on to HBASE. It was PIG that surprised us the most.Even though written by the same author who wrote Chapter 4, this one was pretty simple and illustrative.Now when we found that we were able to proceed through the chapters, we came back to Chapter 5 and then covered the rest of Map-Reduce.But still Chapter 4 is a Mystery....Had to skip it forever...But we found yahoo material explaining serialization pretty well...But couldn't deal with AVRO...Still searching for materials to learn that....:)
on September 7, 2014
this is a jumbled up mess of things related to hadoop. the index is well organized and each chapter well named so that the reader feels that once he goes through the chapters he will "know" hadoop.
but in reality, the author starts talking about map reduce even before the map reduce chapter starts. the author assumes that the reader is an experienced java programmer or in some other language.
all things said its not one of those books that have a serial approach to learning a subject, starting from -10 and taking you to +100.
it starts with +23 and after taking lot of ups and downs, sometimes -20, sometimes +80, leaves you at +43. yes you have gained some knowledge but are you confident to talk about hadoop, definitely no. you just end up even more frustrated.
on September 4, 2012
I read the book with attention mainly to Hadoop's underlying premises and platform architecture, and note that this review focuses on the book itself, not the subject of Hadoop in general.
Firstly, I agree with the reviewer noting the book's a "mishmash". It's rather unorganized and thus presented poorly in that it delivers a series of ad-hoc "how tos". After three editions, this should have been remedied.
But, what I feel is the largest shortcoming is that, while the author certainly seems to demonstrate deep knowledge of Hadoop and its related projects, he make numerous assertions of underlying platform concepts that are either unsubstantiated or completely incorrect. Given the complexities and efforts expected of large-scale, distributed systems, this is a critical weakness.
For example, page 3 under "Data Storage and Analytics" (and available under "Look Inside") illustrates a naïve and incorrect understanding of disk performance; research "understanding IOPS" to understand why this is. Ironically, actual and not theoretical performance would likely be worse than what he outlines so had he provided perhaps just a tad more accuracy, he would not only have maintained credibility, but also in turn made a stronger case for the limitations of disk I/O (albeit rotating in this context). This is not to split hairs since, and by his own statement, the focal point of Hadoop is mitigating mass storage and processing scalability bottlenecks, and Hadoop is the focal point of the book. Foundational knowledge, such as how to measure disk performance, in the problem itself is expected.
His knowledge of RAID concepts is also demonstrably quite lacking, and various RAID levels have to-date been the standard mechanism to speedup disk I/O and mitigate consequences of disk failure. HDFS has its own counterpart to RAID so a definitive guide to Hadoop must provide a definitive understanding of RAID. Again, this is squarely within the scope of the book so to expect the author to understand the topic is not unreasonable, but unfortunately here too his credibility suffers.
Page 3 also describes "how RAID works", but even that statement is inherently inaccurate. In practice, "RAID" itself isn't an absolute term and must be accompanied by a level, and certain levels serve completely different purposes (research "RAID levels"); his comment would be accurate rephrased as "how RAID 1 (mirroring) works". Later, in chapter 9, he does in fact refer to RAID 0, but then states that RAID 0 "is" (as opposed to "may be") slower than JBOD with HDFS. Regardless of whether than could be the case or not, it's presented as fact and, inexplicably, he offers a hyperlink to an email outlining a brief, one-off experiment as "proof". This is far from scientific or objective; to extrapolate a single cause from such an "experiment" is tantamount to junk science. The authors of the experiment's results themselves didn't even offer it as conclusive.
He also makes careless logical and mathematical generalizations, like in the following statement: "[i]n JBOD, disk operations are independent, so the average speed of operations is greater than that of the slowest disk.". That is not a true statement because if all of the disks are same speed (however that's measured...) then mean speed and each disk's speed would be equal. Furthermore, "[d]isk performance often shows considerable variation in practice, even for disks of the same model.". Period. End of story. No evidence, no citations, not even a logical proof. Nothing. A completely subjective and baseless assertion that the reader is expected to simply accept. This pattern unfortunately permeates the entire text.
His recommendation of JBOD, however, applies only to a certain class of Hadoop servers and for another he does in fact recommend RAID. Whether that reflects general consensus, I don't know, but after claiming that JBOD under HDFS outperforms RAID 0, he adds that JBOD is superior also because "if a disk fails in a JBOD configuration, HDFS can continue to operate without the failed disk, whereas with RAID, failure of a single disk causes the whole array (and hence the node) to become unavailable.". I'm sure that gave a chuckle to those who possess even the most basic understanding of RAID levels and level nesting. And besides the proposition being simply false at face value, it's also logically contradicts his suggestion a few paragraphs prior that RAID should be used, albeit for a certain server role, but used nevertheless. Whether he's gaming his RAID explanations to suit a particular purpose or he's playing fast-and-loose with terms he doesn't understand is unclear, but what is clear is that his information is unreliable.
Another example includes asserting a SAN impacts data center bandwidth. With virtually no exceptions, SANs are over dedicated fiber channels, not "the network", and thus "network bandwidth" potentially being a bottleneck, as he describes, is completely inapplicable.
He refers to a "1 GB" switch in several places and we're left to assume it's actually "1 Gbps". Similarly, references to "rational" rather than "relational" databases appear repeatedly early in the book. Misprints or not, they further erode credibility.
"Linear scalability" through parallel processing is a repeated reference, but at any scale--from multicore to thousand-node grids--engineers know that Amdahl's Law proves this is simply not possible. "Less non-linear" or a similar description would be accurate and not mislead the reader to believe doubling compute doubles speedup.
Ultimately, I'm disappointed in the extremely limited depth the author demonstrates in understanding distributed system and even simple computing fundamentals. Perhaps these topics have been rushed and perhaps other flaws are attributable to the publisher, but they are so central to the subject that to speak to them at all requires speaking to them intelligently and scientifically. Because the author unfortunately indicates little of either, I cannot recommend this book and will instead seek credibility on the subject elsewhere.