Introduction to Apache Spark

 Introduction:

Spark - open source big data processing framework used for processing transforming and analyzing Big Data. Core written using Scala language.

Programming language spark supports:

 - Java default support, 

- Scala default support, 

- Python through Pyspark,

- R through SparkR


Spark Frame Work Architecture:-


Spark Framework Components:-

1. Spark Core (core functionalities, APIs to support programming languages )

2. Spark SQL - enables to leverage the power SQL declarative programming language to concentrating on what to do (Business Logic) , not How to Do also like imperative languages.

3. Spark Streaming - a real time or nearly real time processing, it will process even if it one record, not wait bulk processing

4. Spark MLlib - for Machine Learning purpose

5. GraphX  - helps to process graph data


Spark Cluster Type - Master Slave architecture (can say Diver - worker)

Features:-

- provides Distributed computing(parallel processing)

- in - memory processing

- supports batch, streaming and real time processing

- supports SQL to write transformations and actions

- Lazy evaluation

- Fault tolerant

- providing RDD/ Datasets/Date Frames(optimized) simulates structured Tables

- supports different types of File Systems and Cluster Managers


Advantages :-

- Both Open Source and Enterprise solutions available.

- High performance

- handle large volume of data

- customizable configurations such as memory, partitions, nodes etc..

- built-in optimization for SQL

- flexible to run on different file systems such as HDFS, DBFS, S3, Azure Blob etc...

- easily integrate with wide range of Sources and sink

- support graph data processing

- strong community support

- highly scalable


Disadvantages :-

- in-memory makes it as relatively costlier due to high RAM capacity needed even though it provides reliable performance.

- no built - in file systems , reliance on External file systems

- Streaming is not effecient compared to other alternative streaming frameworks such as fink.

- Limited Machine Learning Algorithms making less choices for MLOps and Data Science.

- Manual Performance tuning makes need for expertise in it. less advantage for beginners  

- not optimized for small scale applications.

 


continuing Apache Cluster Architecture in next blog.



Comments

Popular posts from this blog

Apache Spark Cluster Architecture