MTI TEK
  • Home
  • About
  • LLMs
  • Docker
  • Kubernetes
  • Java
  • All Resources
Big Data | Big Data ecosystem
  1. Apache Hadoop Ecosystem
  2. Apache Spark Ecosystem
  3. Data Warehousing with Apache Hive
  4. Cluster Management for Big Data
  5. Hive on Spark vs Spark with Hive Metastore
  6. File Formats for Big Data
  7. NoSQL Database Systems
  8. Types of NoSQL Databases
  9. Commercial Hadoop Distributions

  1. Apache Hadoop Ecosystem
    Apache Hadoop is a comprehensive ecosystem for distributed storage and processing of large datasets. The core components work together to provide scalable, fault-tolerant big data solutions.
    • Apache Hadoop: The foundational platform that provides distributed storage and processing capabilities for large datasets across clusters of commodity hardware.

    • HDFS (Hadoop Distributed File System): The distributed storage layer that breaks large files into blocks and replicates them across multiple nodes for fault tolerance and parallel processing.

    • YARN (Yet Another Resource Negotiator): The resource management layer that handles job scheduling, resource allocation, and monitoring across the cluster.

    • MapReduce: The original batch processing framework that processes data in parallel using map and reduce phases. Suitable for ETL operations and batch analytics.
    • Apache Tez: An improved execution framework that provides better performance than MapReduce through optimized task scheduling and reduced disk I/O.
    • Apache Spark: A unified analytics engine that provides in-memory processing capabilities, making it significantly faster than MapReduce for iterative algorithms.

    • Apache Hive: A data warehouse software that provides SQL-like query capabilities (HiveQL) over data stored in HDFS, making Hadoop accessible to SQL developers.
    • HiveQL (HQL): The SQL-like query language used by Hive to define, query, and analyze large datasets stored in Hadoop.

    • Apache Impala: A high-performance SQL engine that provides low-latency queries directly on data stored in HDFS and HBase, bypassing MapReduce for faster analytics.

    • Apache HBase: A column-family NoSQL database that provides real-time read/write access to large datasets, built on top of HDFS.

    • Apache Mahout: A scalable machine learning library that provides implementations of clustering, classification, and collaborative filtering algorithms for big data.

    • Apache Flume: A service for collecting, aggregating, and moving large amounts of streaming data (especially log data) into HDFS in real-time.
    • Apache Sqoop: A tool for efficiently transferring bulk data between Hadoop and structured data stores like relational databases, supporting both import and export operations.

    • Apache Oozie: A workflow scheduler that manages complex Hadoop job dependencies and coordinates multiple MapReduce, Pig, Hive, and Spark jobs.
    • Apache Pig: A high-level platform with Pig Latin scripting language that simplifies writing complex data transformations and analysis programs.

    • Apache Ambari: A web-based management platform for provisioning, managing, monitoring, and securing Hadoop clusters through an intuitive interface.
    • Apache ZooKeeper: A coordination service that provides distributed configuration management, synchronization, and naming services for distributed applications.
    • Apache Kafka: A distributed streaming platform that handles real-time data feeds and provides high-throughput, low-latency messaging between systems.
  2. Apache Spark Ecosystem
    Apache Spark is a unified analytics engine designed for large-scale data processing with built-in modules for various workloads including batch processing, interactive queries, streaming, and machine learning.
    • Apache Spark: A unified analytics engine that provides fast, in-memory data processing capabilities across diverse workloads, supporting batch, interactive, and streaming analytics.

    • Spark Core API: The foundational API available in multiple programming languages (Java, Scala, Python, R) that provides basic I/O functionalities, task scheduling, and memory management.

    • Spark Core Engine: The distributed execution engine that leverages in-memory computing and optimized execution plans to deliver superior performance compared to traditional MapReduce frameworks.

    • Spark SQL (+ DataFrames): A module that provides structured data processing through SQL queries and DataFrame API, offering seamless integration with various data sources and formats.

    • Spark MLlib: A comprehensive machine learning library that provides scalable implementations of common algorithms including classification, regression, clustering, and collaborative filtering.
    • Spark Streaming: A scalable and fault-tolerant stream processing engine that enables real-time analytics on live data streams with micro-batch processing capabilities.

    • Spark GraphX: A distributed graph processing framework that provides APIs for graph computation and supports common graph algorithms like PageRank and connected components.

    • SparkR (R on Spark): An R package that provides a lightweight frontend enabling R users to leverage Spark's distributed computing capabilities for large-scale data analysis.

    • Spark Shell: Interactive shells available in multiple languages - spark-shell (Scala), pyspark (Python), and sparkR (R) - for exploratory data analysis and prototyping.
  3. Data Warehousing with Apache Hive
    Apache Hive provides a data warehouse infrastructure that enables SQL-like analytics on large datasets stored in Hadoop, bridging the gap between traditional SQL databases and big data processing.

    Hive Architecture:
    • Hive is a data warehouse service built on top of Apache Hadoop that provides structure and SQL-like querying capabilities for unstructured data.
    • Hive simplifies big data analytics by allowing users to define schemas on read, making unstructured data queryable through familiar SQL syntax.
    • Hive translates HiveQL queries into MapReduce, Tez, or Spark jobs, enabling scalable processing of large datasets.

    • Metastore: A centralized repository that stores metadata including table schemas, partition information, and data location details, typically implemented using a relational database.
    • Hive QL (HiveQL): A SQL-like query language that supports most standard SQL operations while providing extensions for big data processing needs.
    • Execution Engines: Hive can utilize different execution engines (MapReduce, Tez, or Spark) depending on performance requirements and job characteristics.
    • Hive CLI: A command-line interface that allows users to execute queries and manage Hive operations directly.
    • Hive Web UI (HiveServer2): A web-based interface that provides access to configuration settings, query history, and performance metrics.

    Hive QL Extensions:
    • User-Defined Functions (UDF): Custom functions for row-level data processing and transformation.
    • User-Defined Aggregate Functions (UDAF): Custom functions for aggregating data across multiple rows.
    • User-Defined Table-Generating Functions (UDTF): Custom functions that can generate multiple rows or columns from a single input row.

    Hive Table Structure:
    • Schema: Metadata including table definitions, column information, and data types stored in the Hive Metastore.
    • Data: Actual data files stored in HDFS or other compatible storage systems, organized according to the defined schema.
    • Partitioning: Dividing tables into partitions based on column values to improve query performance and data management.
  4. Cluster Management for Big Data
    Effective cluster management is crucial for deploying and scaling big data applications. Different deployment modes offer varying levels of resource management and isolation.
    • Spark Local Mode: Single-machine deployment using multiple threads within a single JVM, ideal for development, testing, and small-scale data processing.

    • Spark Standalone Mode: Spark's built-in cluster manager that provides simple cluster deployment without external dependencies, suitable for dedicated Spark clusters.

    • YARN (Yet Another Resource Negotiator): Hadoop's resource manager that provides multi-tenancy, resource isolation, and fine-grained resource allocation across different applications and users.

    • Apache Mesos: A cluster manager that provides resource sharing across multiple frameworks (Hadoop, Spark, Kafka) and supports both batch and real-time workloads in the same cluster.
  5. Hive on Spark vs Spark with Hive Metastore
    Understanding the distinction between these two approaches is important for choosing the right architecture for your big data analytics needs.
    • Hive on Spark: Configuring Hive to use Spark as its execution engine instead of the traditional MapReduce, providing better performance for Hive queries while maintaining full HiveQL compatibility.
      set hive.execution.engine=spark;
      This approach leverages Spark's in-memory processing while preserving existing Hive workflows and metadata management.

    • Spark with Hive Metastore: Using Spark SQL to directly query Hive tables by connecting to the Hive Metastore, enabling Spark applications to access existing Hive table definitions and data locations.
      This approach provides native Spark performance and capabilities while accessing data cataloged in Hive, ideal for mixed workloads requiring both Hive and Spark functionality.
  6. File Formats for Big Data
    Choosing the right file format significantly impacts storage efficiency, query performance, and processing speed in big data environments.
    • Text Formats (JSON, CSV): Human-readable formats that store data in rows with each line representing a record. Simple to use but inefficient for large-scale analytics due to lack of compression and schema enforcement.

    • Apache Avro: A row-based binary format that provides schema evolution capabilities, compact serialization, and strong data typing. Ideal for data ingestion and streaming scenarios.

    • Apache Parquet: A columnar storage format optimized for analytical workloads, providing excellent compression ratios and query performance through predicate pushdown and column pruning.

    • Apache ORC (Optimized Row Columnar): A highly optimized columnar format that provides superior compression, built-in indexing, and advanced features like bloom filters for improved query performance.
  7. NoSQL Database Systems
    NoSQL databases provide flexible, scalable alternatives to traditional relational databases, each optimized for specific data models and use cases.
    • Key-Value Databases:
      • Redis: An in-memory data structure store supporting various data types (strings, hashes, lists, sets) with persistence options, commonly used for caching, session management, and real-time analytics.

      • Amazon DynamoDB: A fully managed, serverless key-value and document database that provides consistent single-digit millisecond latency at any scale.

    • Column-Family Databases:
      • Apache HBase: A distributed, scalable, big data store modeled after Google's Bigtable, providing real-time read/write access to large datasets with strong consistency.

      • Apache Cassandra: A distributed, wide-column database designed for handling large amounts of data across multiple data centers with no single point of failure and eventual consistency.

    • Document-Oriented Databases:
      • MongoDB: A document-oriented database that stores data in flexible, JSON-like documents with dynamic schemas, supporting rich queries and indexing.

      • Apache CouchDB: A document-oriented database that uses JSON for documents and JavaScript for MapReduce queries, with built-in web API and multi-master replication.

    • Graph Databases:
      • Neo4j: A native graph database that uses nodes, relationships, and properties to represent and store data, optimized for traversing relationships and pattern matching.

      • Amazon Neptune: A fully managed graph database service that supports both property graph and RDF models, designed for applications with highly connected datasets.
  8. Types of NoSQL Databases
    Each NoSQL database type is optimized for specific data patterns and access requirements, understanding these differences is crucial for selecting the appropriate solution.
    • Key-Value Database: Stores data as simple key-value pairs similar to a hash table. Offers excellent performance for simple lookups, caching, and session management. Limited querying capabilities but highly scalable.

    • Column-Family Database: Organizes data into column families where each row can have different columns. Provides efficient storage and retrieval for sparse data and time-series information. Suitable for analytical workloads and write-heavy applications.

    • Document-Oriented Database: Stores semi-structured data in flexible documents (typically JSON, BSON, or XML) without requiring a fixed schema. Supports complex nested structures and provides rich querying capabilities. Ideal for content management and applications with evolving data structures.

    • Graph Database: Represents data as nodes (entities) connected by edges (relationships) with properties. Optimized for traversing relationships and performing graph-specific operations like shortest path or pattern matching. Perfect for social networks, recommendation engines, and fraud detection.
  9. Commercial Hadoop Distributions
    Commercial Hadoop distributions provide enterprise-ready platforms with additional tools, support, and management capabilities beyond the open-source Apache Hadoop.
    • Cloudera Data Platform (CDP): An integrated data platform that combines the best of Cloudera Enterprise Data Hub and Hortonworks Data Platform, providing hybrid and multi-cloud capabilities.

    • Amazon Web Services Elastic MapReduce (AWS EMR): A cloud-native big data platform that provides managed Hadoop framework with automatic scaling, integrated with other AWS services for seamless data pipeline creation.

    • Microsoft Azure HDInsight: A fully managed cloud service that makes it easy to process large amounts of data using popular open-source frameworks including Hadoop, Spark, and Kafka.

    • Google Cloud Dataproc: A fast, easy-to-use, fully managed cloud service for running Apache Spark and Apache Hadoop clusters with integrated machine learning capabilities.
© 2025 mtitek