A key Role in the Initial Growth of the World Wide Web

Apache Web Server Journal

Subscribe to Apache Web Server Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Apache Web Server Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Apache Web Server Authors: Liz McMillan, Elizabeth White, Pat Romanski, Janakiram MSV, Gil Allouche

Related Topics: Apache Web Server Journal, Open Source Journal, Big Data on Ulitzer

Blog Post

NoSQL Integration with the Hadoop Ecosystem By @MapR | @BigDataExpo

How NoSQL and Hadoop can work together to tackle Big Data challenges

Apache Hadoop is an open source Big Data processing platform that comes with its own extensive ecosystem to support various business and technical needs. Hadoop's specialty is large-scale processing and analytics over volumes of data that cannot be efficiently handled by traditional technologies. Hadoop is often complemented by the class of database management technologies referred to as NoSQL, which is also great for large volumes of data, but NoSQL is more about fast reads and writes than about massive processing. NoSQL and Hadoop can work together to tackle big data challenges.

One thing to note up front is that because Hadoop has an associated storage system, it is sometimes mistakenly assumed to be a database management system. It was also sometimes classified as a NoSQL system during its early days, though the NoSQL label is generally accepted today to refer specifically to databases. And while Hadoop is ideal for storing a variety of data types, it is actually about spreading work across many servers in a cluster, which is something that databases were generally not designed to do.

Hadoop Summarized
To describe what Hadoop covers, let's first look at the four primary components of Hadoop:

  • MapReduce: A distributed programming framework that manages the spreading of work across many nodes in a cluster
  • Hadoop Common: A package containing the libraries and utilities to support associated Hadoop modules
  • YARN: A resource management platform (Yet Another Resource Negotiator) for managing computing resources and scheduling tasks
  • HDFS: The Hadoop Distributed File System which manages Hadoop data, and can be substituted with more sophisticated file systems to handle business-critical needs

Each of these components play a role in defining what Hadoop is. Collectively these Hadoop components support the processing of data-intensive distributed applications, enabling them to work in a deployment potentially made up of thousands of nodes and petabytes of data. Each node is an independent computer and is often assigned a subtask by Hadoop that is run in parallel with other nodes to efficiently complete a much bigger task.

MapReduce and Hadoop Common represent the data processing tools that make Hadoop a great platform for big data. MapReduce supports efficient parallel processing, and its function is to ship applications (which will do the processing) to the nodes where the data reside. This enables "data locality" in which nodes perform the processing on the data they store, to minimize excess network traffic that would result from having nodes process data that reside on other nodes in the cluster.

YARN is a relatively new component to Hadoop that helps schedule tasks across the cluster. Known as MapReduce 2.0 (or "MRv2"), it represents a framework that allows you to run new non-MapReduce jobs in your Hadoop cluster in addition to your standard MapReduce jobs.

HDFS provides the storage functionality in Hadoop and splits large files into small blocks (default is 64 MB) and distributes it across the clustered nodes. It ensures data is replicated so that if a node in the cluster fails, data replicas minimize the risk of data loss. In other words, it has the key design goal of overcoming hardware failure, which is critical particularly when low-cost, commodity hardware is used. Another important design goal in Hadoop was to enable swapping out HDFS for another file system. Some Hadoop vendors took advantage of this architecture to provide value-added capabilities beyond those which standard HDFS provides. As an example, MapR Technologies provides MapR-FS which improves the high availability, disaster recovery, and snapshot capabilities over HDFS, while also adding full read/write capabilities, true NFS access, and higher performance.

MapReduce and HDFS are derived from Google's work on MapReduce and the Google File System (GFS). In addition to the above components, Hadoop consists of a number of related projects like Apache Hive, Apache HBase, and Apache Pig. The wide variety of projects in the Hadoop ecosystem gives you the opportunity to select the right tool for specific use cases with specific requirements when processing and analyzing big data.

... And Now NoSQL
NoSQL, on the other hand, is a category of database management systems, but differs from the likes of Oracle, DB2, MySQL, and other relational database management systems (RDBMS), and so are often described as "non-relational." This means they don't rely on the relational model, in which data is stored in tabular form with consistent rows and columns. Instead, they are more free-form in structure to accommodate varying and changing data types.

NoSQL databases provide a fast and efficient mechanism for the storage and retrieval of data, promoting goals such as simplicity, horizontal scaling capability, and better availability. NoSQL databases are used most often in big data and analytic applications, particularly ones in which fast data access is more important than large-scale, parallel processing.

How Can Hadoop and NoSQL Work Together?
While Hadoop and NoSQL do not have exactly the same functions, they are both related to solving big data problems. The Hadoop framework is used most commonly for processing huge amounts of data, and NoSQL is designed for fast, efficient storage and retrieval of large volumes of data. Considering that many early deployments of Hadoop entailed integrations with RDBMSs, integrating Hadoop with NoSQL was a logical next step.

In many cases, data sets processed in the Hadoop system are originally created and stored in a NoSQL database. Whenever you have interactive applications that create new data, you should consider how you can analyze that data to derive important business insights. For example, you might use NoSQL to store and deliver messages between end users, and then use Hadoop to scan the aggregate collection of messages for sentiment analysis. Tools like Apache Sqoop, database-specific connectors, or third-party data integration products let you copy data from a NoSQL system into Hadoop for the large-scale processing.

There are also independent use cases which may not require the support of both platforms. For example, if it is only necessary to perform parallel processing of simple log data, and then store it in HDFS, then Hadoop alone may be sufficient. Similarly, if the only required function in a given use case is to store and then retrieve data such as web application session state, a NoSQL database will be sufficient. But these "standalone" use cases might be short-lived, as enterprises will continue to find more ways to leverage seemingly low value data into important business insights.

An emerging architecture for NoSQL and Hadoop integration that's worth considering entails the "in-Hadoop" databases that are built specifically to run within the Hadoop framework. Examples include Apache HBase, Apache Accumulo, as well as the MapR-DB In-Hadoop NoSQL database, which was architected for business-critical production deployments. With the combined advantages of both Hadoop's processing framework and NoSQL's fast data access, but without the overhead of moving data from one cluster to another, the Enterprise Database Edition of the MapR Distribution including Hadoop supports high performance, extreme scalability, high availability, snapshots, disaster recovery, integrated security, and more. The best of both technologies make this an ideal environment for big data solutions.

To learn more about how you can optimize your enterprise architecture, down this free whitepaper: Optimize Your Enterprise Architecture with Hadoop and NoSQL.

More Stories By Dale Kim

Dale is Director of Industry Solutions at MapR. His technical and managerial experience includes work with relational databases, as well as non-relational data in the areas of search, content management, and NoSQL. Dale holds an MBA from Santa Clara University, and a BA in Computer Science from the UC Berkeley.