eHealth4everyone is a leading digital health social enterprise dedicated to making the world healthier. We are a new kind of mission-driven organization with ...
eHealth4everyone is a leading digital health social enterprise dedicated to making the world healthier. We are a new kind of mission-driven organization with ...
eHealth4everyone is a leading digital health social enterprise dedicated to making the world healthier. We are a new kind of mission-driven organization with ...
eHealth4everyone is a leading digital health social enterprise dedicated to making the world healthier. We are a new kind of mission-driven organization with ...
Apache Spark (Spark) is an open-source data-processing engine for large data sets. It is designed to deliver the computational speed, scalability, and programmability required for Big Data—specifically for streaming data, graph data, machine learning, and artificial intelligence (AI) applications.
Spark's analytics engine processes data 10 to 100 times faster than alternatives. It scales by distributing processing work across large clusters of computers, with built-in parallelism and fault tolerance. It even includes APIs for programming languages that are popular among data analysts and data scientists, including Scala, Java, Python, and R.
Apache Spark is often compared to Apache Hadoop, and specifically to MapReduce, Hadoop’s native data-processing component. The chief difference between Spark and MapReduce is that Spark processes and keeps the data in memory for subsequent steps—without writing to or reading from disk—which results in dramatically faster processing speeds.
Spark has various libraries that extend the capabilities to machine learning, artificial intelligence (AI), and stream processing.
Apache Spark MLlib
One of the critical capabilities of Apache Spark is the machine learning abilities available in the Spark MLlib. The Apache Spark MLlib provides an out-of-the-box solution for doing classification and regression, collaborative filtering, clustering, distributed linear algebra, decision trees, random forests, gradient-boosted trees, frequent pattern mining, evaluation metrics, and statistics. The capabilities of the MLlib, combined with the various data types Spark can handle, make Apache Spark an indispensable Big Data tool.
Spark GraphX
In addition to having API capabilities, Spark has Spark GraphX, a new addition to Spark designed to solve graph problems. GraphX is a graph abstraction that extends RDDs for graphs and graph-parallel computation. Spark GraphX integrates with graph databases that store interconnectivity information or webs of connection information, like that of a social network.
Spark Streaming
Spark Streaming is an extension of the core Spark API that enables scalable, fault-tolerant processing of live data streams. As Spark Streaming processes data, it can deliver data to file systems, databases, and live dashboards for real-time streaming analytics with Spark's machine learning and graph-processing algorithms. Built on the Spark SQL engine, Spark Streaming also allows for incremental batch processing that results in faster processing of streamed data.
Apache Spark has a hierarchical master/slave architecture. The Spark Driver is the master node that controls the cluster manager, which manages the worker (slave) nodes and delivers data results to the application client.
Based on the application code, Spark Driver generates the SparkContext, which works with the cluster manager—Spark’s Standalone Cluster Manager or other cluster managers like Hadoop YARN, Kubernetes, or Mesos— to distribute and monitor execution across the nodes. It also creates Resilient Distributed Datasets (RDDs), which are the key to Spark’s remarkable processing speed.