Difference Between Hadoop and Cassandra
Hadoop is an open source software which is designed to handle parallel processing and mostly used as a data warehouse for voluminous of data. A core of Hadoop is HDFS (Hadoop distributed file system) which is based on Map-reduce. Through Map-reduce, data is made to process in parallel, in multiple CPU nodes. That means running heavy application is no more a challenge, as this could be run on multiple nodes in a cluster. Let’s explore the Map-reduce. Actually, these are two different tasks :
1. Map: It is a task, which takes the input data and breaks it down into a key-value pair, that we call tuples.
2. Reduce: After map task completes its work. It is then given to reduce to perform an even smaller set of tuples.
Reduce always gets performed after map task. The map-reduce framework consists of a single master JobTracker and one slave TaskTracker, per cluster-node. HDFS consists of a single NameNode, which manages the file system metadata and one or more slave that are known as DataNodes, which are responsible to store the actual data.
Cassandra is NoSQL database which is designed for high speed, online transactional data. The specialty of Cassandra lies in the fact, that it works without a single point of failure.
Cassandra uses gossip protocol, to keep the updated status of surrounding nodes in the cluster. In case one node goes down, another node takes its responsibility, till the time failed node is not up. All gossip messages possess a version associated with it, so when the nodes exchange the gossip, older information gets overwritten by a newer version of gossip.
Cassandra supports unstructured data with a flexible schema.
Head to Head Comparison between Hadoop vs Cassandra (Infographics)
Below is the top 17 difference between Hadoop vs Cassandra
Key Differences between Hadoop vs Cassandra
Below are the lists of points, describe the key differences between Hadoop and Cassandra
1. Hadoop has distributed filesystem which is designed for parallel data processing, while Cassandra is NoSQL database for speedy online transactions.
2. Hadoop is for preferred for massive data batch processing, whereas Cassandra is preferred for real-time processing.
3. Hadoop works on master-slave architecture, whereas Cassandra works on peer to peer communication.
Hadoop vs Cassandra Comparison Table
Below is the key comparison between Hadoop vs Cassandra
|Basis of Comparison||Hadoop||Cassandra|
|Definition||Big data processing framework.||It is distributed NoSQL database, designed for managing the huge amount of data. Here NoSQL means it’s not like a conventional database. It is more like hashmap/hashtable which stores data, in a key-value pair.|
|Supported format||Any kind of data can be handled by Hadoop – structured, semi-structured, unstructured or images.||Cassandra also can handle almost all structured, semi-structured, unstructured datasets but not the images. However, Cassandra is known to best perform on a semi-structured dataset.|
|Usage||Hadoop is preferred for batch processing of data.||Cassandra is mostly considered for real-time processing.|
|Work||Core of Hadoop is HDFS, which is base for other analytical components for handling big data.||Cassandra work on top HDFS.|
|CAP Parameters||Hadoop follows CP, that is consistency and partition tolerance.||Cassandra follows AP, that is availability and partition tolerance.|
|Communication||Hadoop uses RPC/TCP and UDP for communication among nodes in a cluster.||The protocol used for communication between nodes is gossip protocol. Gossip protocol keeps broadcasting the node status to its peer nodes in the cluster.|
|Architecture||Hadoop follows master-slave architectural design. Name node works as Master, while data node works as a slave.||Cassandra follows distributed architecture with peer to peer communication between nodes. All nodes are designed to play the same role in a cluster. Each node is independent, while at the same time connected with other nodes in the cluster.|
|Data Access Mode||It used map-reduce to read/write.||This uses Cassandra query language.|
|Metadata Storage||Hadoop possesses centralized metadata server.||Cassandra possess ‘inode’ column family in order to store metadata information|
|Fault tolerance||Hadoop is vulnerable to failure. If master node goes down, everything goes for a toss.||As Cassandra doesn’t have a master-slave concept and all nodes has the same value. In case failure of any node, rest of the nodes in a cluster can handle the request easily.|
|Data Compression||Hadoop can compress files 10-15 % with the best available techniques.||Cassandra can compress files till 80% without any overhead.|
|Data Protection||Data audit and access control verify the appropriate user/group permission.||Data is protected in Cassandra with commit log design. Build in security like backup and restore mechanisms plays an important role.|
|Latency||Hadoop reading time range can vary from hundreds of milliseconds (in the worst case) to tens of milliseconds (in the best case). Write latency is comparatively less than reading, because of a large number of nodes.||Cassandra is based on NoSQL, hence its latency is less. It read/write functions are fast.|
|Indexing||Indexing is very difficult in Hadoop.||Indexing is simple in Cassandra because data is stored in a key-value pair.|
|Data Flow||In Hadoop, data is directly written to the data node.||In Cassandra, data is first written to memory, in memory structure format which is known as mem-table. Once that is full, it is written to disk.|
|Data Storage Model||HDFS is the file system in Hadoop. Large files are broken into chunks and then replicated to many nodes.||Keys space column family is the concept followed by Cassandra to store the data. It introduces primary and secondary indexes for high availability of data.|
|Replication Factor||Hadoop has a replication factor of 3 by default.||A default value of replication factor in Cassandra is the number of nodes in a data center.|
Conclusion – Hadoop vs Cassandra
Cassandra is the right choice when it comes to scalability, high availability, low latency without compromising on performance.
However, Hadoop is a great one when data storage, data searching, data analysis and data reporting of voluminous data needs to be done. Hadoop is not suggestible for real-time analytics.
Hadoop along with Cassandra can be a good technology to perform two activities parallelly:
1. Analysis of data generated through a web, mobile etc.
2. Serving the online request instantly.
This can lead to more faster and deeper extraction of insights with less time. Big data will keep on growing, and hence the technology like Hadoop, Cassandra will always be kept on updating and ruling this big data world.
This has been a guide to Difference between Hadoop vs Cassandra here we have discussed their Meaning, Head to Head to Comparison, key differences, and Conclusions. You may also look at the following articles to learn more –