![big_data](https://socialify.git.ci/groda/big_data/image?description=1&font=Inter&language=1&name=1&owner=1&pattern=Diagonal%20Stripes&stargazers=1&forks=1&theme=Light) [![Run Notebooks on Ubuntu](https://github.com/groda/big_data/actions/workflows/run-jupyter-notebooks.yml/badge.svg)](https://github.com/groda/big_data/actions/workflows/run-jupyter-notebooks.yml) [![Link Check](https://github.com/groda/big_data/actions/workflows/link-check.yml/badge.svg)](https://github.com/groda/big_data/actions/workflows/link-check.yml) [![Last Commit](https://img.shields.io/github/last-commit/groda/big_data)](https://github.com/groda/big_data/commits/main) ![GitHub top language](https://img.shields.io/github/languages/top/groda/big_data) ![GitHub repo size](https://img.shields.io/github/repo-size/groda/big_data) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) # Big Data for beginners Explore a variety of tutorials and interactive demonstrations focused on Big Data technologies like Hadoop, Spark, and more, primarily presented in the format of Jupyter notebooks. Most notebooks are self-contained, with instructions for installing all required services. They can be run on Google Colab or in a virtual Ubuntu machine/container. ## Setting Up Hadoop: Single-Node Configuration - **[Hadoop_Setting_up_a_Single_Node_Cluster.ipynb](Hadoop_Setting_up_a_Single_Node_Cluster.ipynb)** Open In Colab Render in nbviewer Set up a single-node Hadoop cluster on Google Colab and run some basic HDFS and MapReduce examples - **[Hadoop_single_node_cluster_setup_Python.ipynb](Hadoop_single_node_cluster_setup_Python.ipynb)** Open In Colab Render in nbviewer Set up a single-node Hadoop cluster on Google Colab using Python ![recently updated](updated.gif) - **[Hadoop_minicluster.ipynb](Hadoop_minicluster.ipynb)** Open In Colab Render in nbviewer Deploy a test Hadoop Cluster with a single command and no need for configuration. ![recently updated](updated.gif) ## Running Apache Spark in Standalone Mode - **[Setting_up_Spark_Standalone_on_Google_Colab.ipynb](Setting_up_Spark_Standalone_on_Google_Colab.ipynb)** Open In Colab Render in nbviewer Set up a single-node Spark server on Google Colab and estimate „π“ with a Montecarlo method - **[Setting_up_Spark_Standalone_on_Google_Colab_BigtopEdition.ipynb](Setting_up_Spark_Standalone_on_Google_Colab_BigtopEdition.ipynb)** Open In Colab Render in nbviewer Set up a single-node Spark server on Google Colab using the Bigtop distribution and utilities, estimate „π“ with a Montecarlo method and run another Java ML example. ![recently updated](updated.gif) - **[Run_Spark_on_Google_Colab.ipynb](Run_Spark_on_Google_Colab.ipynb)** Open In Colab Render in nbviewer Set up a single-node standalone Spark server on Google Colab including Web UI and History Server - compact version ![recently updated](updated.gif) - **[Spark_Standalone_Architecture_on_Google_Colab.ipynb](Spark_Standalone_Architecture_on_Google_Colab.ipynb)** Open In Colab Render in nbviewer Explore the Spark architecture through the immersive experience of deploying a standalone setup. ![recently updated](updated.gif) - **[SparkOnSLURM.ipynb](SparkOnSLURM.ipynb)** Open In Colab Render in nbviewer Spark on SLURM: Single-Node Parallelism Guide. ![new](new3.gif) ## MapReduce Tutorials - **[MapReduce_Primer_HelloWorld.ipynb](MapReduce_Primer_HelloWorld.ipynb)** Open In Colab Render in nbviewer A MapReduce Primer with “Hello, World!” ![recently updated](updated.gif) - **[MapReduce_Primer_HelloWorld_bash.ipynb](MapReduce_Primer_HelloWorld_bash.ipynb)** Open In Colab Render in nbviewer A MapReduce Primer with “Hello, World! in Bash with just a few lines of code” ![recently updated](updated.gif) - **[mapreduce_with_bash.ipynb](mapreduce_with_bash.ipynb)** An introduction to MapReduce using MapReduce Streaming and bash to create mapper and reducer - **[simplest_mapreduce_bash_wordcount.ipynb](simplest_mapreduce_bash_wordcount.ipynb)** A very basic MapReduce wordcount example - **[mrjob_wordcount.ipynb](mrjob_wordcount.ipynb)** Open In Colab Render in nbviewer This demonstration showcases MapReduce using the `mrjob` library for performing the classic WordCount algorithm, which counts the frequency of every word in a text dataset. ![recently updated](updated.gif) - **[getting_started_with_mrjob.ipynb](getting_started_with_mrjob.ipynb)** Open In Colab Render in nbviewer Getting started with `mrjob`. This demonstration showcases the power and flexibility of the `mrjob` Python framework for developing and executing scalable data processing jobs, supporting both MapReduce and Spark across different execution backends, culminating in a hybrid approach utilizing Spark on YARN.![new](new3.gif) - **[Hadoop_spilling.ipynb](Hadoop_spilling.ipynb)** Hadoop spilling explained ## PySpark Tutorials - **[PySpark_On_Google_Colab.ipynb](PySpark_On_Google_Colab.ipynb)** Open In Colab Render in nbviewer Explore the inner workings of PySpark on Google Colab ![recently updated](updated.gif) - **[PySpark_miscellanea.ipynb](PySpark_miscellanea.ipynb)** Open In Colab Render in nbviewer Tips, tricks, and insights related to PySpark. ![recently updated](updated.gif) - **[getting_started_with_mrjob.ipynb](getting_started_with_mrjob.ipynb)** Open In Colab Render in nbviewer Getting started with `mrjob`. This demonstration showcases the power and flexibility of the `mrjob` Python framework for developing and executing scalable data processing jobs, supporting both MapReduce and Spark across different execution backends, culminating in a hybrid approach utilizing Spark on YARN.![new](new3.gif) - **[demoSparkSQLPython.ipynb](demoSparkSQLPython.ipynb)** Open In Colab Render in nbviewer A hands-on demo showcasing the fundamentals of PySpark SQL — how to create DataFrames, register temporary views, and query data using SQL syntax. ![recently updated](updated.gif) - **[ngrams_with_pyspark.ipynb](ngrams_with_pyspark.ipynb)** Open In Colab Render in nbviewer Basic example of n-grams extraction with PySpark - **[Ngrams.ipynb](Ngrams.ipynb)** Open In Colab Render in nbviewer This notebook demonstrates the power of Apache Spark (PySpark) for large-scale data processing through the computation of N-grams. It showcases fundamental Spark concepts, including transformations and actions, using two distinct and massive datasets: Common Crawl (Web Data) and Genomic Data ![recently updated](updated.gif) - **[generate_data_with_Faker.ipynb](generate_data_with_Faker.ipynb)** Open In Colab Render in nbviewer Fake It Till You Make It: Generate Test Data with Faker. Create customizable fake data for testing and development using the Faker library. Useful for populating databases, simulating user activity, or prototyping applications without relying on real data. ![recently updated](updated.gif) - **[Encoding_dataframe_columns.ipynb](Encoding_dataframe_columns.ipynb)** Open In Colab Render in nbviewer DataFrame Column Encoding with PySpark and Parquet Format ![recently updated](updated.gif) - **[Apache_Sedona_with_PySpark.ipynb](Apache_Sedona_with_PySpark.ipynb)** Open In Colab Render in nbviewer Apache Sedona™ is a high-performance cluster computing system for processing large-scale spatial data, extending the capabilities of Apache Spark for advanced geospatial analytics. Run a basic example with PySpark on Google Colab ![recently updated](updated.gif) ## Miscellaneous Tutorials - **[GutenbergBooks.ipynb](GutenbergBooks.ipynb)** Open In Colab Render in nbviewer Explore and download books from the Gutenberg books collection. ![recently updated](updated.gif) - **[TestDFSio.ipynb](TestDFSio.ipynb)** Demo of TestDFSio for benchmarking Hadoop clusters - **[Unicode.ipynb](Unicode.ipynb)** Open In Colab Render in nbviewer [![live on Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/groda/big_data/master?filepath=Unicode.ipynb) Exploring Unicode categories ![recently updated](updated.gif) - **[polynomial_regression.ipynb](polynomial_regression.ipynb)** Open In Colab Render in nbviewer Worked out example of polynomial regression with numpy and matplotlib ![recently updated](updated.gif) - **[downloadSpark.ipynb](downloadSpark.ipynb)** Open In Colab Render in nbviewer How to download and verify the Spark distribution. Learn about the Apache CDN distribution and visualize the Spark releases timeline. ![new](new3.gif) - **[SLURM.ipynb](SLURM.ipynb)** Open In Colab Render in nbviewer SLURM (Simple Linux Utility for Resource Management) is an open-source workload manager used to schedule and run jobs on shared compute resources—even on a single machine. This walkthrough shows how to set up and use SLURM, a popular workload manager, on a single Ubuntu virtual machine inside Google Colab. ![new](new3.gif) ## Virtualization and Cloud Automation - **[docker_for_beginners.md](docker_for_beginners.md)** Docker for beginners: an introduction to the world of containers - **[Terraform for beginners.md](terraform_for_beginners.md)** Getting started with Terraform - **[Terraform in 5 minutes](Terraform%20in%205%20minutes.md)** A short introduction to Terraform, the powerful and popular tool for infrastructure provisioning and management ![recently updated](updated.gif) ## Big Data Learning Pathways - **[online_resources.md](online_resources.md)** Online resources for learning Big Data # About this repository ## Notebooks Testing and CI [![Run Notebooks on Ubuntu](https://github.com/groda/big_data/actions/workflows/run-jupyter-notebooks.yml/badge.svg)](https://github.com/groda/big_data/actions/workflows/run-jupyter-notebooks.yml) All Jupyter notebooks are tested on an Ubuntu virtual machine through a GitHub automated workflow. The executions results are saved in: [report.md](https://github.com/groda/big_data/blob/master/report.md). ## 💡 Keep Learning, Keep Sharing If you find these tutorials useful, feel free to leave a ⭐ on the repository.