Confessions of a Book Burner – A novelist and poet’s engrossing journey to find her creativity and strength – #bookreview

 

Confessions of a Book Burner

Lucha Corpi

 (Arte Público Press - paperback )

 

In the Mexican state of Vera Cruz, a school teacher who knew the Corpi family let little four-year-old Lucha come to class with her older brother and spend each day sitting quietly at the back of the room.

As Lucha watched and listened, she soon began learning how to read and write and also how, literally, to blend into backgrounds.

These skills later would serve her well at a pivotal moment in her adult life, when she suddenly found herself a divorced young mother living in a foreign country, the United States, with a young son to support  while surrounded by racial bias.

Confessions of a Book Burner is a well-written collection of personal essays and stories that reflect on Lucha Corpi’s journey to becoming a novelist, poet and teacher, and then, breaking out of her in-the-background comfort zone, becoming a San Francisco Bay-area activist for bilingual education, women’s rights, and civil rights.

“Throughout my life, no matter where I’ve lived, silence and melancholy have been my friends and allies,” she writes in her memoir. “They’ve aided the internalization of feeling and the introspection necessary to find the variety of incongruent elements in my conscious and subconscious mind that eventually come together to form [a] poem” or other written work.

“Teaching, writing and motherhood, all-consuming aspects of my life, hardly allowed me time to wallow in self-pity or regret,” she adds.

Lucha Corpi is now an internationally recognized novelist, poet, and author of children’s books. Among her works are four novels in the Gloria Damasco Mystery series, which she began after reading “many mystery novels as well as author interviews on the writing of crime fiction….”

She continues: “Every road taken in my search for the reason Chicanas do not write mysteries kept leading me back to the reading corner. Sin lectura no hay ni escritura e literatura–there is no literature without reading and writing.” Her informal surveys of Chicanas and Latinas convinced her that these readers turned away from mysteries because they don’t like stories about crime and guns and women as victims and seldom have read them.

To that, she writes: “I can…assure any Chicana who is now contemplating penning a mystery novel that the writing of crime fiction, when one respects one’s art, is as legitimate as any other kind of writing; that exposing the machinations of a ‘justice system’ which more often than not stacks the deck against women, especially women of color, is not only all right; it is also a way to obtaining justice  for those who won’t or can’t speak for themselves.”

Si Dunn

Scala for Java Developers – A practical guide to building apps and integrating code – #programming #bookreview

Scala for Java Developers

Build reactive, scalable applications and integrate Java code with the power of Scala

Thomas Alexandre

(Packtpaperback, Kindle)

 

The increasingly popular Scala programming language runs on the Java Virtual Machine (JVM). And “Java and Scala stacks can be freely mixed for totally seamless integration,” Scala’s website proudly trumpets.

The Scala site goes on to note: “Scala is a modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages.”

Indeed, in Scala, “every value is an object” and “every function is a value.”

Scala’s continuing  rise poses something of a dilemma for many Java developers. Their questions include:

  • Should I learn Scala and blend it with Java?
  • Should I take up Scala and use it instead of  Java?
  • Should I just keep my head down, ignore Scala, and focus on getting better at developing with Java?

Thomas Alexandre’s well-written new book, Scala for Java Developers, clearly is aimed at those who would much rather add Scala to their skills and resumes than attempt to hide from the changes Scala can offer to Java development.

He notes in his preface: “When I tell people around me that I now program in Scala rather than Java, I often get the question, ‘So, in simple words, what is the main advantage of using Scala compared to Java?’  I tend to respond with this: ‘With Scala, you reason and program closer to the domain, closer to plain English.’ “

However, Alexandre’s new how-to guide does not try to browbeat developers into abandoning Java and pledging allegiance to Scala alone. Instead, Alexandre shows how the two programming languages can be used together. And he demonstrates how Scala solutions often can be shorter and less complex than their Java equivalents.

He focuses on “exploring progressively some of the new concepts brought by Scala, in particular, how to unify the best of Object-Oriented and functional programming without giving away any of the established and mature technologies built around Java for the past fifteen years.”

Decisions regarding how far to go with Scala remain with the reader. Yet Alexandre and his numerous code examples make a compelling case for becoming at least reasonably familiar with the language and experiencing how easily it can integrate with Java.

And, yes, he does evangelize a bit; this is, after all, a book about Scala. “Scala is the only language that has it all,” Alexandre touts. “It is statically typed, runs on the JVM and is totally Java compatible, is both object-oriented and functional, and is
not verbose, thereby leading to better productivity, less maintenance, and therefore more fun.”

His book is divided into 10 chapters:

  • Chapter 1: Programming Interactively within Your Project – Includes advantages of using Scala, learning Scala via the REPL, and performing operations on collections.
  • Chapter 2: Code Integration – Focuses on creating a REST API from an existing database, adding a test in Scala, setting up Scala within a Java Maven project, and showing how Scala and Java work together despite some differences in code style.
  • Chapter 3: Understanding the Scala Ecosystem – Includes inheriting Java Integrated Development Environments (IDEs), building with Simple Build Tool (SBT), using Scala worksheets, working with HTTP, and using Typesafe Activator.
  • Chapter 4: Testing Tools – Writing tests with ScalaTest and testing with ScalaCheck.
  • Chapter 5: Getting Started with the Play Framework - Getting started with the classic Play distribution, getting started with the Typesafe Activator, the architecture of a Play application, authentication, and practical tips when using Play.
  • Chapter 6: Database Access and the Future of ORM – In this case, ORM is Object Relational Modeling. Chapter topics include integrating an existing ORM – Hibernate and JPA, dealing with persistence in the Play framework, replacing ORM, learning about Slick, and scaffolding a Play application.
  • Chapter 7: Working with Integration and Web Services – Includes binding XML data in Scala, working with XML and JSON, and handling Play requests with XML and JSON.
  • Chapter 8: Essential Properties of Modern Applications – Asynchrony and Concurrency – Covers the pillars of concurrency, the async library – SIP-22-Async, and getting started with Akka.
  • Chapter 9: Building Reactive Web Applications – Includes describing reactive applications, handling streams reactively, experimenting with WebSockets and Iteratees in Play, learning from activator templates, and playing with Actor Room.
  • Chapter 10: Scala Goodies – Covers exploring MongoDb and scratching the surface of Big Data. Also introduces DSLs in Scala and introduces Scala.js, which compiles Scala to JavaScript.

Alexandre makes a strong pitch for using the Play framework in Scala web development. And he again speaks out for Scala at the conclusion of his well-structured book:

“The concise and expressive syntax of the Scala language should make your code not only more readable but also more maintainable for yourself and other developers,” he writes. “You don’t have to give up any of the libraries of the very large and mature Java ecosystem as all the APIs can be reused directly within Scala. Moreover, you benefit from many additional great Scala-specific libraries. Our recommendation is to take a piece of Java code from a domain you understand well, maybe because you wrote it in the first place one or several times before. Then, try to convert it to Scala code and refactor it to get rid of the boilerplate and to make it in a more functional style.”

Si Dunn

 

 

 

 

 

 

 

 

CoffeeScript in Action – A pleasant, thorough, language-centered how-to guide – #programming #bookreview

 

CoffeeScript in Action

Patrick Lee

(Manning - paperback)

 

CoffeeScript compiles to JavaScript, that awkward, quirky mashup which remains–because of its central role in the World Wide Web–one of the world’s most heavily utilized programming languages.

When beginners first hear this about CoffeeScript, they often think: Ah, ha! I could learn that and skip having to learn JavaScript!

Nope. Sorry.

“CoffeeScript is not about avoiding JavaScript–it is about understanding JavaScript,” Patrick Lee writes in his comprehensive and pleasant new book, CoffeeScript in Action. “Learning CoffeeScript helps people to understand JavaScript.”

Lee notes: “CoffeeScript is a simple language, and there are two simple reasons for learning it. First, it fixes some problems in JavaScript that are unpleasant to work with. Second, understanding CoffeeScript will help you learn new ways of using JavaScript and new ways of programming in general.”

So, learn JavaScript and learn CoffeeScript. And, if you are hired to work with JavaScript, be very glad you took the time and effort to also learn CoffeeScript. It will come in handy.

CoffeeScript increasingly is being used to write complete applications. (Just one example: the CoffeeScript compiler used to be written in Ruby. Now it is implemented in CoffeeScript.) Likewise, CoffeeScript can work smoothly with Node.js and Ruby on Rails.

CoffeeScript is out there, and, increasingly, it is being put to work in the workaday world.

CoffeeScript in Action definitely lives up to its title. Lee’s book takes the reader from the foundations and basic building blocks of the language all the way to thoughts on the future of CoffeeScript as ECMAScript 5 and ECMAScript 6 keep bringing changes to JavaScript.

I have read and used several smaller books on CoffeeScript, including The Little Book on CoffeeScript and Jump Start CoffeeScript. These are good, and numerous other books are available. But if you want a reasonably deep understanding of CoffeeScript as a programming language, I recommend starting with, or moving up to, CoffeeScript in Action.

Patrick Lee says that his book “doesn’t try to comprehensively detail libraries, frameworks, or other ancillary matters. Instead, it concentrates only on teaching the CoffeeScript programming language from syntax, through composition, to building, testing, and deploying applications.”

The three-part, 13-chapter, 408-page (in print format) book offers dozens of short, concise code examples that illustrate such diverse aspects as objects, functions, mixins, tests, event loops, compiling, creating animations, using CoffeeScript with domain-specific languages, and deploying applications. The book also serves up some CoffeeScript cartoons, as well as practical illustrations for key points.

How long will JavaScript be around–and, with it, the impetus to learn CoffeeScript?

Lee contends that “you should count on it being around for a long time–long enough, at least, that it will probably outlast your career as a programmer.”

Si Dunn

 

The Nature of Truth – Sergio Troncoso’s intelligent thriller is now in paperback – #bookreview

The Nature of Truth

Sergio Troncoso

(Arte Público Press – paperback )

 

Yale graduate student Helmut Sanchez is a man unsure of who he really is.  He feels “neither American nor German nor Mexican.”

Indeed, as this absorbing, intelligent, world-wise thriller unfolds, Helmut is wrestling with a question “that had tormented him all his life,” Sergio Troncoso writes.

“Helmut Sanchez had always hoped his Mexican blood would save him from a free-fall into his German heritage. Yet certain parts of this heritage also captivated him, especially German philosophy and poetry. So instead of saving him outright, these mixed legacies confused him. He had never really felt at home with German culture, but in the many ways he harbored the same doubts about American culture.”

He is, in short, stuck with the vague feeling that he is “neither here nor there.”

Suddenly, amid his graduate school academic research, Helmut makes a startling discovery about one of his professors. It is a finding that unsettles both his life and his views even more. Soon afterward, when the professor is killed, Helmut finds himself drawn into a murder investigation where the borders between good and evil and right and wrong quickly get fluid and murky.

The Nature of Truth, first published in hardback in 2003 by Northwestern University Press, is now available for the first time in paperback, from the University of Houston’s Arte Público Press. Sergio Troncoso, who lives and works in New York City, has won numerous awards for his writing. He is now a resident faculty member of the Yale Writers’ Conference.

Troncoso’s previous books include Crossing Borders: Personal Essays, From This Wicked Patch of Dust, and The Last Tortilla and Other Stories.

Si Dunn

 

 

Mastering Gamification – A 30-day strategy to enhance customer engagement – #business #bookreview

 

Mastering Gamification

Customer Engagement in 30 Days

Scot Harris and Kevin O’Gorman

(Impackt Publishing – Kindle, paperback)

 Gamification is now a popular buzz word in many parts of the business world. This book wisely does not try to cover every angle, but stays focused on one application: “Marketing and sales people are using gamification to improve customer loyalty and engagement, knowing that it will lead to increased profitability,” the authors write.

They emphasize that “gamifying does not mean turning your business or website into a game. As Gamification.org defines it, gamifying is:

‘The presence or addition of game-like characteristics in anything
that has not been traditionally considered a game.’

 “Take particular note of the word ‘characteristics’ in this phrase,” the authors point out . “The purpose of gamifying is not to turn something into a game, but to apply understanding and knowledge about the basic human desires we all have that make us like games to a non-gaming environment, and hopefully to improve our businesses.”

 You may not finish all of the exercises, nor follow all of the suggestions in this well-written book. Yet the well-structured, 30-day plan offered by Harris and O’Gorman still can help you think harder about your business, how customers see it and how they engage–or don’t engage–with the products or services you offer.

 Even if you operate a small enterprise where you are the entire staff, this book can offer some good ideas and useful tips that can help you make more sales and keep customers coming back.

 What the authors aim to do is help you create and “launch a long-range, ongoing, continuous process of attracting the attention of a target audience, drawing them into a social space built around you and your products or services, encouraging them to evangelize about your products or services, and instilling in them an unshakable sense of loyalty.”

 In other words, you learn how to use some gamification techniques to get customers’ attention, keep their attention, and keep them coming back for more of whatever you are selling–three major keys to long-term survival and growth in business.

Si Dunn

Mule in Action, 2nd Edition – Want to be an integration developer? Here’s a good start – #bookreview

 

Mule in Action, Second Edition

David Dossot, John D’Emic, Victor Romero

(Manning – paperback)

 

An enterprise service bus (ESB) can help you link together many different types of platforms and applications–old and new–and keep them communicating and passing data between each other.

“Mule,” this book’s authors note, “is a lightweight, event-driven enterprise service bus and an integration platform and broker.  As such, it resembles more a rich and diverse toolbox than a shrink-wrapped application.”

Mule in Action, Second Edition, is a comprehensive and generally well-written overview of Mule 3 and how to put its open-source building blocks together to create integration solutions and develop them with Mule. The book provides very good focus on sending, receiving, routing, and transforming data, key aspects of an ESB.

More attention, however, could have been paid to clarity and detail in Chapter 1, the all-important chapter that helps Mule newcomers get started and enthused.

This second edition is a recent update of the 2009 first edition. Unfortunately, the Mule screens have changed a bit since the book’s screen shots were created for the new edition. Therefore, some of the how-to instructions and screen images do not match what the user now sees. This gets particularly confusing while trying to learn how to configure a JMS outbound endpoint for the first time, using Mule Studio’s graphical editor. The instructions seem insufficient, and the mismatch of screens can leave a beginner unsure how to proceed.

The same goes for configuring the message setting in the Logger element. The text instructs: “You’ll set the message attribute to print a String followed by the payload of the message, using the Mule Expression Language.” But no example is given. Fortunately, a reviewer on Amazon has posted a correct procedure. In his view, the message attribute should be: We received a message: #[message.payload]  –without any quote marks around it. (It works.)

Of course, this book is not really aimed at beginners–it’s for developers, architects, and managers (even though there will be Mule “beginners” in those ranks). Fortunately, it soon moves away from relying solely on Mule Studio’s graphical editor. The book’s examples, as the authors note, “mostly focus on the XML configurations of flows.” Thus, there are many XML code examples to work with, plus occasional screen shots of the flows as they appear in Mule Studio. And you can use other IDEs to work with the XML, if you prefer.

Indeed, the authors note, “no functionality in the CE version of Mule is dependent on Mule Studio.”

Overall, this is a very good book, and it definitely covers a lot of ground, from “discovering” Mule to becoming a Mule developer of integration applications, and using certain tools (such as business process management systems) to augment the applications you develop. I just wish a little more how-to clarity had been delivered in Chapter 1.

Si Dunn

South, America – Action, mystery and gritty Southern noir – #bookreview

South, America

A Jack Prine Novel

Rod Davis

(New South Books – paperback, Kindle)

Here’s one way to get yourself into deep trouble: Try to perform a simple act of kindness.

Jack Prine, the central character in this gritty, well-written new mystery novel, reluctantly tries to help a young woman understand what has happened to her brother. And from there, the favor quickly goes downhill, to fear, violence, threats, gunfire and the need to make quick escapes.

Prine lives in New Orleans, and he is, in his own words, “trying to figure out a line on my future….”

As he tries to sort out just what that “line” might be, he has been “doing some freelance writing and the occasional unlicensed PI investigation for a divorce lawyer/ex-Army buddy….”

Early one Sunday morning, Prine has nothing much on his mind except his hangover and a strong need for some Guatemalan coffee. But as he is walking to get the cup of coffee, he discovers a dead body. A man has had the back of his head bashed in. Prine dutifully calls the police and answers the investigator’s questions. Later, Prine gets a phone call from the victim’s sister, Elle Meridian. Reluctantly, he agrees to meet her, so he can tell her more about what he saw and show her where her brother died.

Once they do meet, their attraction for each other develops fairly quickly. And as Jack Prine’s relationship with Elle grows, he soon finds himself drawn into circumstances and dangers he could never have imagined when he first heard her voice on the telephone.

Suddenly, the “unlicensed PI” is having to be a hard-boiled detective. And he and Elle wind up on the run from the vicious and tenacious Dixie Mafia. They race through Alabama and Mississippi on their way back to New Orleans– where no safety awaits them.

South, America is an engrossing tale alive with Southern landscape, thugs, family secrets, voudou, art treasures, racial tensions, sex…and love. And the book’s ending offers an excellent setup for the next Jack Prine novel, hopefully coming soon from Rod Davis.

Si Dunn

 

Software Testing Foundations, 4th Edition – Updated study guide for Certified Tester Exam – #bookreview

Software Testing Foundations, 4th Edition

A Study Guide for the Certified Tester Exam

Andreas Spillner, Tilo Linz, Hans Schaefer

(Rocky Nook - paperback, Kindle

 

Worldwide, more than 300,000 software testers now have certifications recognized by the International Software Testing Qualifications Board (ISTQB).

“The ISTQB Certified Tester qualification scheme has three steps,” the authors note. “The basics are described in the Foundation Level curriculum (syllabus). Building on this is the Advanced Level certificate, showing a deeper knowledge of testing and evaluation. The third level, the Expert Level, is intended for experienced professional software testers and consists of several modules about different special topics.”

This newly updated study guide covers subjects on the Certified Tester Exam at the Foundation Level. The major topics are:

  • Fundamentals of Testing
  • Testing in the Software Life Cycle
  • Static Test
  • Dynamic Analysis – Test Design Techniques
  • Test Management

Appendices cover standardized test plans, offer exercises for each chapter that follow the introduction, and provide a glossary of terms, many of which are recognized by the ISTQB.

“Testing has no tradition for using standardized terminology,” the writers caution. “Thus, the test plan should contain an explanation of the testing terms used in the project. There is a high danger that different people will have different interpretations of testing terms. For example, just ask several people involved in the project for the definition of the term load testing.”

The three writers point out that “[t]he Certified Tester Foundation Level syllabus version 2011 forms the basis of this book . A few updates to the syllabus, which is due to be released in 2015, are noted in the book. The respective national boards may create and maintain additional national versions of the syllabus. These may contain minor deviations from the English original, such as, for example, references to local standards. The national boards coordinate and guarantee mutual compatibility of their curricula and exams. In this context, the responsible board is the International Software Testing Qualifications Board.”

Whether you plan to seek formal ISTQB certifications or just up your game as a software tester, Software Testing Foundations can be an excellent how-to guide. Many aspects of software testing–a complex and often underappreciated field–are covered. Overall, the book is well-organized and written clearly, and its illustrations, while somewhat sparse, are adequate to the task.

Si Dunn

 

Play for Java – Good intro to the Play 2 Java web framework – #programming #bookreview

Play for Java

Nicolas Leroux and Sietse de Kaper

(Manning, paperback)

 

“There are,” co-author Nicolas Leroux writes, ” many Java web frameworks, but most of them have a key flaw: they try to hide the web behind an abstraction layer, rather than embracing it. That is the most important difference between Play and most other Java web frameworks (Servlets, we’re looking at you!).”

His writing partner, Sietse de Kaper,  adds: “Play ‘gets it.’ For ‘it,’ in this case, a lot of things can be substituted. Play ‘gets’ HTTP and the web in general, how developing web application works, what makes a nice and clean API, and more. This was clear from the early Play 1 beta versions, and that’s why we’ve used it on many projects since 1.0 came out. It didn’t disappoint. Now, with Play 2, Play continues to improve web development for the Java platform.”

Their new book from Manning is nicely written, adequately illustrated and structured properly to help newcomers get started with Play and with basic web application development. Play for Java also can help experienced web app developers quickly get up to speed quickly with this powerful development platform.

You start by creating and modifying the ubiquitous “Hello world!” application. Then you spend the remaining chapters developing, expanding and enhancing a warehouse management application, one designed to meet specific requirements within a made-up company. “Enterprise applications usually live inside the IT department and are usually hosted within the organization,” Leroux and de Kaper explain. Indeed, businesses may have several or many enterprise applications serving specific purposes, and those apps often do not communicate with each other.

As both writers note: “Web developers are used to interacting with their applications through the browser. With Play, you can also use the console to interact with your web application’s development environment and build system. This is important for both quick experiments and automating things.”

The web app framework Play is, indeed, fun to play with–and work with. For example, it is very good at showing you exactly (ona browser screen) where you have made a keystroke mistake or other blunder in your code. And the words  “Compilation error” on the screen display can’t be missed. Indeed, they can be read from across a room. (Fortunately, in my office, so no one sees them but me.)

If you decide to download Play and give it a try, be sure you (1) have Java installed correctly and (2) know how to set PATHs correctly on your Windows, Linux, or Mac machine. (I had a lingering Java glitch in one of my machines, and I nearly flung a Windows 7 PC into a wall in frustration. But I finally found the problem and fixed it, and Play immediately popped to life as shown in the book. Meanwhile, Play installed smoothly on a Windows 8.1 machine and an ex-XP PC now running Ubuntu.) 

The authors show how to use Play with three IDEs: Eclipse, NetBeans and IntelliJ. Or, if you prefer, you can stick with the Play console and a text editor such as Notepad++ (my current favorite). And they repeatedly emphasize that (1) you should not worry that their Java framework called Play actually is written in Scala and (2) you will encounter some bits of Scala while working with template files.

“Any template language has structures you need to know to build your templates, and Scala templates are no different,” they explain. “Once you know what you have to do to, for example, iterate over a collection or insert a variable value somewhere, you know all you have to know to use that feature. You don’t have to think of it as Scala if you don’t want to. Think of it as another template language.” (Actually, Scala is not scary at all once you’ve spent a little time with it or taken an online class.)

Play supports the optional use of some compiled assets, and “[o]ut of the box, Play 2 comes with support for LESS, CoffeeScript, and Google’s Closure compiler,” the co-authors note.

According to Playframework.org, Play is built on Akka and offers “a lightweight, stateless, web-friendly architecture.” It also offers built-in testing tools and speedy “hit refresh” workflow capabilities.

Whether you are an experienced web app developer, a newcomer, a student or a hobbyist programmer, it can be serious fun to work with–or play with–Play. And Nicolas Leroux’s and Sietse de Kaper’s Play for Java can be exactly the well-tuned guide you need to learn Play 2.

 – Si Dunn

 

 

 

 

 

 

Optimizing Hadoop for MapReduce – A practical guide to lowering some costs of mining Big Data – #bookreview

Optimizing Hadoop for MapReduce

Learn how to configure your Hadoop cluster to run optimal MapReduce jobs

Khaled Tannir

(Packt Publishing, paperback, Kindle)

Time is money, as the old saying goes. And that saying especially applies to the world of Big Data, where much time, computing power and cash can be consumed while trying to extract profitable information from mountains of data.

This short, well-focused book by veteran software developer Khalid Tannir describes how to achieve a very important, money-saving goal: improve the efficiency of MapReduce jobs that are run with Hadoop.

As Tannir explains in his preface:

“MapReduce is an important parallel processing model for large-scale, data-intensive applications such as data mining and web indexing. Hadoop, an open source implementation of MapReduce, is widely applied to support cluster computing jobs that require low response time.

“Most of the MapReduce programs are written for data analysis and they usually take a long time to finish. Many companies are embracing Hadoop for advanced data analytics over large datasets that require time completion guarantees.

“Efficiency, especially the I/O costs of MapReduce, still needs to be addressed for successful implications. The experience shows that a misconfigured Hadoop cluster can noticeably reduce and significantly downgrade the performance of MapReduce jobs.”

Tannir’s well-focused, seven-chapter book zeroes in on how to find and fix misconfigured Hadoop clusters and numerous other problems. But first, he explains how Hadoop parameters are configured and how MapReduce metrics are monitored.

Two chapters are devoted to learning how to identify system bottlenecks , including CPU bottlenecks, storage bottlenecks, and network bandwidth bottlenecks.

One chapter examines how to properly identify resource weaknesses, particularly in Hadoop clusters. Then, as the book shifts strongly to solutions, Tannir explains how to reconfigure Hadoop clusters for greater efficiency.

Indeed, the final three chapters deliver details and steps that can help you improve how well Hadoop and MapReduce work together in your setting.

For example, the author explains how to make the map and reduce functions operate more efficiently, how to work with small or unsplittable files, how to deal with spilled records (those written to local disk when the allocated memory buffer is full), and ways to tune map and reduce parameters to improve performance.

“Most MapReduce programs are written for data analysis and they usually take a lot of time to finish,” Tannir emphasizes. However: “Many companies are embracing Hadoop for advanced data analytics over large datasets that require completion-time guarantees.” And that means “[e]fficiency, especially the I/O costs of MapReduce, still need(s) to be addressed for successful implications.”

He describes how to use compression, Combiners, the correct Writable types, and quick reuse of types to help improve memory management and the speed of job execution.

And, along with other tips, Tannir presents several “best practices” to help manage Hadoop clusters and make them do their work quicker and with fewer demands on hardware and software resources. 

Tannir notes that “setting up a Hadoop cluster is basically the challenge of combining the requirements of high availability, load balancing, and the individual requirements of the services you aim to get from your cluster servers.”

If you work with Hadoop and MapReduce or are now learning how to help install, maintain or administer Hadoop clusters, you can find helpful information and many useful tips in Khaled Tannir’s Optimizing Hadoop for Map Reduce.

Si Dunn