|
||||||||
Hadoop MapReduce - Python Automation and Machine Learning for ICs - - An Online Book: Python Automation and Machine Learning for ICs by Yougui Liao - |
||||||||
| Python Automation and Machine Learning for ICs http://www.globalsino.com/ICs/ | ||||||||
| Chapter/Index: Introduction | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Appendix | ||||||||
================================================================================= Apache Hadoop is a framework for distributed storage and processing of large data sets using the MapReduce programming model. Hadoop MapReduce is a software framework for easily writing applications that process vast amounts of data (multi-terabyte data sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner. It is a core component of the Apache Hadoop ecosystem, which is widely used for big data processing. The term "MapReduce" refers to two separate and distinct tasks that Hadoop programs perform:
The MapReduce model processes large unstructured data sets with a distributed algorithm on a Hadoop cluster. The framework handles scheduling tasks, monitoring them, and re-executes the failed tasks. The MapReduce system consists of a single master JobTracker and one slave TaskTracker per cluster-node. The master is responsible for resource management, tracking resource availability and task life cycle management (task scheduling and fault tolerance). Slaves execute the tasks as directed by the master and report back with the task status. Hadoop MapReduce can be used for a wide variety of tasks, such as data sorting, web indexing, and various forms of analytics. It's designed to scale up from a single server to thousands of machines, each offering local computation and storage. The key advantages of Hadoop MapReduce are:
Hadoop MapReduce primarily uses Java as its programming language. The framework itself is written in Java, and the standard way to write a MapReduce job is through Java APIs. Hadoop provides a comprehensive and powerful Java API for creating MapReduce jobs, managing file systems, and handling large datasets. However, Hadoop also supports other languages for writing MapReduce jobs through its Hadoop Streaming API. This API allows you to write your map and reduce functions in any language that can read from standard input (stdin) and write to standard output (stdout). Common choices include Python, Ruby, Bash, and Perl, among others. This flexibility is provided by using the Hadoop Streaming utility, which creates a MapReduce job and converts the input and output so they can be used with any compatible language. Figure 3400a shows the diagram of how MapReduce works.
Figure 3400b shows an example of using a MapReduce diagram that details how the process handles the "Word Count" problem, which is a classic example used to illustrate MapReduce. This problem involves counting the number of occurrences of each word in a dataset. Each Map task processes its line and outputs key-value pairs, where the key is the word and the value is 1 for each word. Shuffle is the stage which groups all key-value pairs from all Map tasks by key. Each Reduce task takes one key and a list of values, and then sums the values to get the total count for each word.
MapReduce offers several benefits, particularly in scenarios involving large-scale data processing. MapReduce is a versatile framework used in various industries for numerous large-scale data processing tasks. Some practical examples of how and why people use MapReduce across different sectors are:
===========================================
|
||||||||
| ================================================================================= | ||||||||
|
|
||||||||