Here comes another post on publishing the results of the Java survey I ran recently where I asked developers on tools/frameworks they used in the last 12 months. Respondants had the option to choose from a predefined list of options or select Others and provide their own choice. In this post we’ll be covering Big Data tools.
If you haven’t seen the previous posts on the Java survey, here’s the list of topics covered in it:
- Web Frameworks
- Application Servers
- Data Access Tools for SQL
- SQL Databases
- Big Data
- Build Tools
- Cloud Provider
Now let’s look at Big Data. According to Wikipedia,
Big data is a broad term for data sets so large or complex that traditional data processing applications are inadequate.
In many cases using a SQL database for storing/retrieving data will be just fine. In some other cases, it either doesn’t scale or there are better tools for our purposes. It all depends on the use cases.
Now let’s discuss the different non-SQL tools to store/process data – NoSQL databases, in-memory caches, full-text search engines, real-time streaming, graph databases, etc.
Big Data — Survey Results
- MongoDB – a popular, a cross-platform document-oriented database.
- Elasticsearch – a distributed RESTful search engine built for the cloud.
- Cassandra – an open source distributed database management system originally developed at Facebook and designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.
- Redis – an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.
- Hazelcast – an open source in-memory data grid based on Java.
- EHCache – a widely used open source Java distributed cache for general purpose caching, Java EE and light-weight containers.
- Hadoop – an open-source software framework written in Java for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware.
- Solr – an open source enterprise search platform, written in Java, from the Apache Lucene project.
- Spark – the most active project in the Apache Software Foundation, an open source cluster computing framework.
- Memcached – a general-purpose distributed memory caching system.
- Apache Hive – provides an SQL-like layer on top of Hadoop.
- Apache Kafka – a high-throughput, distributed, publish-subscribe messaging system originally developed at LinkedIn.
- Akka – a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
- HBase – an open source, non-relational, distributed database modeled after Google’s BigTable, written in Java and runs on top of HDFS.
- Neo4j – an open-source graph database implemented in Java.
- CouchBase – an open-source, distributed NoSQL document-oriented database that is optimized for interactive applications.
- Apache Storm – open source distributed realtime computation system.
- CouchDB – an open-source document-oriented NoSQL database that uses JSON to store data.
- Oracle Coherence – an in-memory data grid solution that enables organizations to predictably scale mission-critical applications by providing fast access to frequently used data.
- Titan – a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster.
- Amazon DynamoDB – a fast and flexible fully managed NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale.
- Amazon Kinesis – a platform for streaming data real-time on AWS.
- Datomic – a fully transactional, cloud-ready, distributed database written in Clojure.