What are the Hadoop MapReduce concepts?

What do you mean by Map-Reduce programming?

MapReduce is a programming model designed for processing large volumes of data in parallel by dividing the work into a set of independent tasks.

El modelo de programación MapReduce se inspira en los lenguajes funcionales y se dirige a los cálculos de datos intensivos,,en,El formato de los datos de entrada es de aplicación específica,,en,y se especifica por el usuario,,en,La salida es un conjunto de,,en,El usuario expresa un algoritmo utilizando dos funciones,,en,Mapa y Reducir,,en,La función de mapa se aplica sobre los datos de entrada y produce una lista de intermedio,,en,La función Reducir se aplica a todos los pares intermedios con la misma clave,,en,Se suele llevar a cabo algún tipo de operación de fusión y produce cero o más pares de salida,,en,los pares de salida se ordena de acuerdo al valor de la clave,,en,En la forma más simple de los programas de MapReduce,,en,el programador proporciona precisamente la función de mapa,,en,Todas las demás funciones,,en,incluyendo la agrupación de los pares intermedios que tienen la misma clave y la clasificación final de,,en,es proporcionado por el tiempo de ejecución,,en. The input data format is application-specific, and is specified by the user. The output is a set of <key,valor> pairs. The user expresses an algorithm using two functions, Map and Reduce. The Map function is applied on the input data and produces a list of intermediate <key,valor> pairs. The Reduce function is applied to all intermediate pairs with the same key. It typically performs some kind of merging operation and produces zero or more output pairs. Finally, the output pairs are sorted by their key value. In the simplest form of MapReduce programs, the programmer provides just the Map function. All other functionality, including the grouping of the intermediate pairs which have the same key and the final sorting, is provided by the runtime.

Fases del modelo MapReduce,,en,La unidad de nivel superior de trabajo en MapReduce es un trabajo,,en,Un trabajo por lo general tiene un mapa y una fase de reducir,,en,aunque la fase de reducir se puede omitir,,en,considerar un trabajo MapReduce que cuenta el número de veces que cada palabra se utiliza a través de un conjunto de documentos,,en,La fase mapa cuenta las palabras en cada documento,,en,entonces el reducir fase agrega los datos por-documento en recuentos de palabras que abarcan toda la colección,,en,Durante la fase mapa,,en,los datos de entrada se divide en divisiones de entrada para el análisis por tareas mapa que se ejecutan en paralelo en el clúster Hadoop,,en,el marco MapReduce obtiene datos de entrada del sistema de archivos distribuido Hadoop,,en,La fase reducir,,en,utiliza los resultados de las tareas mapa como entrada a un conjunto de tareas paralelas reducir,,en,Las tareas de reducir consolidan los datos en los resultados finales,,en

The top level unit of work in MapReduce is a job. A job usually has a map and a reduce phase, though the reduce phase can be omitted. For example, consider a MapReduce job that counts the number of times each word is used across a set of documents. The map phase counts the words in each document, then the reduce phase aggregates the per-document data into word counts spanning the entire collection.

During the map phase, the input data is divided into input splits for analysis by map tasks running in parallel across the Hadoop cluster. By default, the MapReduce framework gets input data from the Hadoop Distributed File System (HDFS).

The reduce phase uses results from map tasks as input to a set of parallel reduce tasks. The reduce tasks consolidate the data into final results. By default, los almacena marco MapReduce resultados en HDFS,,en,Aunque la fase de reducir depende de la salida de la fase mapa,,en,mapa y reducir el procesamiento no está necesariamente secuenciales,,en,Es decir,,en,reducir las tareas pueden comenzar tan pronto como se completa cualquier tarea mapa,,en,No es necesario para todas las tareas para completar el mapa antes de cualquier tarea puede comenzar reducir,,en,MapReduce opera en pares de valores clave,,en,un trabajo MapReduce toma un conjunto de entrada de pares de valores clave y produce un conjunto de pares de salida de valores clave haciendo pasar los datos a través de mapa y reduce las funciones,,en,Las tareas mapa producen un conjunto intermedio de pares de valores clave que las tareas reducir los usos como entrada,,en,Las claves de los pares de salida mapa no tienen por qué ser único,,en,Entre el procesamiento de mapa y el procesamiento de reducir,,en.

Although the reduce phase depends on output from the map phase, map and reduce processing is not necessarily sequential. That is, reduce tasks can begin as soon as any map task completes. It is not necessary for all map tasks to complete before any reduce task can begin.

MapReduce operates on key-value pairs. Conceptually, a MapReduce job takes a set of input key-value pairs and produces a set of output key-value pairs by passing the data through map and reduces functions. The map tasks produce an intermediate set of key-value pairs that the reduce tasks uses as input.

The keys in the map output pairs need not be unique. Between the map processing and the reduce processing, un paso aleatorio ordena todos los valores de salida de mapa con la misma clave en una sola entrada de reducir,,en,Lista de valor,,en,par,,en,donde el ‘valor,,en,es una lista de todos los valores que comparten la misma clave,,en,la entrada a una tarea de reducir es en realidad un conjunto de,,en,Aunque cada conjunto de pares de valores clave es homogénea,,en,los pares de valores clave en cada paso no necesita tener el mismo tipo de,,en,los pares de valores clave en el conjunto de entrada,,en,KV1,,is,puede ser,,en,con la producción de la fase mapa,,en,entero,,en,pares como los resultados intermedios,,en,KV2,,is,y el de reducir la producción de fase,,en,pares para los resultados finales,,en,KV3,,is,Ejemplo que demuestra conceptos MapReduce,,en,El ejemplo demuestra concepto básico MapReduce calculando el número de ocurrencia de cada palabra en un conjunto de archivos de texto,,en,Los datos de entrada MapReduce se divide en divisiones de entrada,,en,y las divisiones se dividen además en entrada pares de valores clave,,en (key, value-list) pair, where the ‘value’ is a list of all values sharing the same key. Thus, the input to a reduce task is actually a set of (key, value-list) pairs.

Though each set of key-value pairs is homogeneous, the key-value pairs in each step need not have the same type. For example, the key-value pairs in the input set (KV1) can be (string, string) pairs, with the map phase producing (string, integer) pairs as intermediate results (KV2), and the reduce phase producing (integer, string) pairs for the final results (KV3).

The keys in the map output pairs need not be unique. Between the map processing and the reduce processing, un paso aleatorio ordena todos los valores de salida de mapa con la misma clave en una sola entrada de reducir,,en,Lista de valor,,en,par,,en,donde el ‘valor,,en,es una lista de todos los valores que comparten la misma clave,,en,la entrada a una tarea de reducir es en realidad un conjunto de,,en,Aunque cada conjunto de pares de valores clave es homogénea,,en,los pares de valores clave en cada paso no necesita tener el mismo tipo de,,en,los pares de valores clave en el conjunto de entrada,,en,KV1,,is,puede ser,,en,con la producción de la fase mapa,,en,entero,,en,pares como los resultados intermedios,,en,KV2,,is,y el de reducir la producción de fase,,en,pares para los resultados finales,,en,KV3,,is,Ejemplo que demuestra conceptos MapReduce,,en,El ejemplo demuestra concepto básico MapReduce calculando el número de ocurrencia de cada palabra en un conjunto de archivos de texto,,en,Los datos de entrada MapReduce se divide en divisiones de entrada,,en,y las divisiones se dividen además en entrada pares de valores clave,,en (key, value-list) pair, where the ‘value’ is a list of all values sharing the same key. Thus, the input to a reduce task is actually a set of (key, value-list) pairs.

Example demonstrating MapReduce concepts

The example demonstrates basic MapReduce concept by calculating the number of occurrence of each word in a set of text files.

The MapReduce input data is divided into input splits, and the splits are further divided into input key-value pairs. En este ejemplo,,en,el conjunto de datos de entrada es de los dos documentos,,en,documento1 y documento2,,en,La subclase InputFormat divide el conjunto de datos en una fracción por documento,,en,para un total de,,en,escisiones,,en,El marco MapReduce divide los datos de entrada establecidos en trozos llamados divisiones utilizando la subclase org.apache.hadoop.mapreduce.InputFormat suministrado en la configuración de trabajo,,en,Escisiones son creados por el Cliente de empleo local, y se incluyen en la información del trabajo puesto a disposición del Job Tracker,,en,El JobTracker crea un mapa de tareas para cada división,,en,Cada tarea mapa utiliza un RecordReader proporcionada por la subclase InputFormat para transformar la división en entrada pares de valores clave,,en,número de línea,,en,par clave-valor se genera para cada línea en un documento de entrada,,en,La función de mapa descarta el número de línea y produce una línea por,,en, the input data set is the two documents, document1 and document2. The InputFormat subclass divides the data set into one split per document, for a total of 2 splits:

Nota: The MapReduce framework divides the input data set into chunks called splits using the org.apache.hadoop.mapreduce.InputFormat subclass supplied in the job configuration. Splits are created by the local Job Client and included in the job information made available to the Job Tracker. The JobTracker creates a map task for each split. Each map task uses a RecordReader provided by the InputFormat subclass to transform the split into input key-value pairs.

La (line number, texto) key-value pair is generated for each line in an input document. The map function discards the line number and produces a per-line (word, count) par para cada palabra en la línea de entrada,,en,El reducir produce fase,,en,pares que representan el número de palabras agregadas a través de todos los documentos de entrada,,en,Teniendo en cuenta los datos de entrada se muestra la progresión de mapas reducir ejemplo para el trabajo se,,en,La salida de la fase de mapa contiene varios pares de valores clave con la misma clave,,en,Los ‘avena,,en,y come,,en,teclas aparecen dos veces,,en,Recordemos que el marco MapReduce consolida todos los valores con la misma clave antes de entrar en la fase de reducir,,en,por lo que la entrada para reducir es en realidad,,en,Por lo tanto,,en,la progresión completa de la salida mapa,,en,a través de reducir,,en,a los resultados finales se muestra anteriormente,,en,Ciclo de Vida de empleo MapReduce,,en,A continuación se presenta el ciclo de vida de un trabajo típico de MapReduce y las funciones del ciclo de vida completo actors.The primaria son más complejas por lo que aquí nos concentraremos en los componentes primarios,,en. The reduce phase produces (word, count) pairs representing aggregated word counts across all the input documents. Given the input data shown the map-reduce progression for the example job is:

The output from the map phase contains multiple key-value pairs with the same key: The ‘oats’ and ‘eat’ keys appear twice. Recall that the MapReduce framework consolidates all values with the same key before entering the reduce phase, so the input to reduce is actually (key, values) pairs. Therefore, the full progression from map output, through reduce, to final results is shown above.

MapReduce Job Life Cycle

Following is the life cycle of a typical MapReduce job and the roles of the primary actors.The full life cycle are more complex so here we will concentrate on the primary components.

La configuración Hadoop se puede hacer de diferentes maneras, pero la configuración básica consiste en lo siguiente,,en,un único nodo maestro corriendo Job Tracker,,en,múltiples nodos de trabajo que ejecutan tareas Rastreador,,en,A continuación se presentan los componentes del ciclo de vida de trabajo MapReduce,,en,cliente de empleo local,,en,El cliente de trabajo local prepara el trabajo para la presentación y las manos apagado al Job Tracker,,en,Job Tracker,,en,El seguidor de empleo horarios del trabajo y distribuye el mapa de trabajo entre los rastreadores de tareas para el procesamiento paralelo,,en,tarea Rastreador,,en,Cada seguidor de tareas genera un mapa de tareas,,en,El Rastreador de Trabajo recibe información del progreso de los rastreadores de tareas,,en,Una vez resultados del mapa están disponibles,,en,el Rastreador de Trabajo distribuye el trabajo entre reducir los rastreadores de tareas para el procesamiento paralelo,,en,Cada seguidor de tareas genera un Reducir tareas para realizar el trabajo,,en.

  • Single master node running Job Tracker
  • Multiple worker nodes running Task Tracker

Following are the life cycle components of MapReduce job.

  • Local Job client: The local job Client prepares the job for submission and hands it off to the Job Tracker.
  • Job Tracker: The Job Tracker schedules the job and distributes the map work among the Task Trackers for parallel processing.
  • Task Tracker: Each Task Tracker spawns a Map Task. The Job Tracker receives progress information from the Task Trackers.

Once map results are available, the Job Tracker distributes the reduce work among the Task Trackers for parallel processing.

Each Task Tracker spawns a Reduce Task to perform the work. The Job Tracker receives progress information from the Task Trackers.

Todas las tareas mapa no tienen que completar antes de reducir las tareas empiecen a publicarse,,en,Reducir las tareas pueden comenzar tan pronto como comienzan las tareas de completar el mapa,,en,el mapa y reducir los pasos a menudo se superponen,,en,La funcionalidad de los diferentes componentes de trabajo MapReduce,,en,Cliente trabajo,,en,Trabajo cliente realiza las siguientes tareas,,en,Valida la configuración del trabajo,,en,Genera las divisiones de entrada,,en,Esto es, básicamente, dividiendo el trabajo de entrada en trozos,,en,Copias los recursos del trabajo,,en,archivo JAR trabajo,,en,escisiones de entrada,,en,en una ubicación compartida,,en,tales como un directorio HDFS,,en,donde es accesible para el Rastreador de empleo y rastreadores de tareas,,en,Presenta el trabajo a la Job Tracker,,en,Job Tracker realiza las siguientes tareas,,en,Obtiene divisiones de entrada desde la ubicación compartida donde el cliente coloca la información de empleo,,en,Crea un mapa de tareas para cada división,,en,Asigna a cada tarea mapa para un rastreador de tareas,,en,nodo trabajador,,en. Reduce tasks can begin as soon as map tasks begin completing. Thus, the map and reduce steps often overlap.

Functionality of different components in MapReduce job

Job Client: Job client performs the following tasks

  • Validates the job configuration
  • Generates the input splits. This is basically splitting the input job into chunks
  • Copies the job resources (configuración, job JAR file, input splits) to a shared location, such as an HDFS directory, where it is accessible to the Job Tracker and Task Trackers
  • Submits the job to the Job Tracker

Job Tracker: Job Tracker performs the following tasks

  • Fetches input splits from the shared location where the Job Client placed the information
  • Creates a map task for each split
  • Assigns each map task to a Task Tracker (worker node)

Después de que la tarea se ha completado el mapa,,en,Job Tracker hace las siguientes tareas,,en,Crea reducir las tareas hasta el máximo permitido por la configuración del trabajo,,en,Asigna cada partición consecuencia mapa para una tarea de reducir,,en,Asigna a cada tarea de reducir a un rastreador de tareas,,en,Una tarea Rastreador gestiona las tareas de un nodo de los trabajadores y los informes de estado al Job Tracker,,en,Tarea Rastreador hace las siguientes tareas cuando un mapa o reducir tarea se le asigna,,en,Obtiene recursos de empleo a nivel local,,en,Genera una JVM hijo en el nodo trabajador para ejecutar el mapa o reducir tarea,,en,Los informes de estado a la Job Tracker,,en,La depuración de MapReduce,,en,Hadoop mantiene registros de eventos importantes durante la ejecución del programa,,en,éstos se almacenan en los registros / subdirectorio del hadoop-version / directorio donde se ejecuta desde Hadoop,,en,Los archivos de registro se denominan hadoop-usuario-servicio-hostname.log,,en, Job Tracker does the following tasks

  • Creates reduce tasks up to the maximum enabled by the job configuration.
  • Assigns each map result partition to a reduce task.
  • Assigns each reduce task to a Task Tracker.

Task Tracker: A Task Tracker manages the tasks of one worker node and reports status to the Job Tracker.

Task Tracker does the following tasks when map or reduce task is assigned to it

  • Fetches job resources locally
  • Spawns a child JVM on the worker node to execute the map or reduce task
  • Reports status to the Job Tracker

Debugging Map Reduce

Hadoop keeps logs of important events during program execution. By default, these are stored in the logs/ subdirectory of the hadoop-version/ directory where you run Hadoop from. Log files are named hadoop-username-service-hostname.log. Los datos más recientes se encuentra en el archivo .log,,en,los registros anteriores tienen su fecha anexada a ellos,,en,El nombre de usuario en el nombre de archivo de registro se refiere al nombre de usuario bajo el que se inició Hadoop,,en,esto no es necesariamente el mismo nombre de usuario que se utiliza para ejecutar programas,,en,El nombre del servicio se refiere a cuál de los varios programas de Hadoop están escribiendo el registro,,en,tesis puede ser JobTracker,,nl,DataNode,,en,secondarynamenode,,en,o TaskTracker,,en,Todos estos son importantes para la depuración de una instalación entera Hadoop,,en,Sin embargo, para los programas individuales,,en,los registros de TaskTracker serán los más relevantes,,en,Excepciones emitidas por el programa se registran en los registros TaskTracker,,en,El directorio de registro también tendrá un subdirectorio llamado userlogs,,en,Aquí hay otro subdirectorio para cada ejecución de la tarea,,en; older logs have their date appended to them. The username in the log filename refers to the username under which Hadoop was started — this is not necessarily the same username you are using to run programs. The service name refers to which of the several Hadoop programs are writing the log; these can be jobtracker, namenode, datanode, secondarynamenode, or tasktracker. All of these are important for debugging a whole Hadoop installation. But for individual programs, the tasktracker logs will be the most relevant. Any exceptions thrown by your program will be recorded in the tasktracker logs.

The log directory will also have a subdirectory called userlogs. Here there is another subdirectory for every task run. Cada tarea registra su stdout y stderr a dos archivos en este directorio,,en,Tenga en cuenta que en un clúster Hadoop de varios nodos,,en,estos registros no son agregada centralmente,,en,usted debe comprobar los registros / userlogs / el directorio de cada TaskNode para su producción,,en,Depuración en el entorno distribuido es complicado y requiere la introducción de varias máquinas para acceder a los datos de registro,,en,Si es posible,,en,los programas deben ser unidad probada mediante la ejecución de Hadoop localmente,,en,La configuración por defecto desplegada por Hadoop ejecuta en,,en,única instancia,,en,donde todo el programa de MapReduce se ejecuta en la misma instancia de Java como llamada JobClient.runJob,,en,El uso de un depurador como Eclipse,,en,a continuación, puede establecer puntos de interrupción en el mapa,,en,o reducir,,en,métodos para descubrir sus errores,,en,Es reducir el trabajo obligatorio,,en,Algunos trabajos pueden completar todo su trabajo durante la fase de mapa,,en. Note that on a multi-node Hadoop cluster, these logs are not centrally aggregated — you should check each TaskNode’s logs/userlogs/ directory for their output.

Debugging in the distributed setting is complicated and requires logging into several machines to access log data. If possible, programs should be unit tested by running Hadoop locally. The default configuration deployed by Hadoop runs in “single instance” mode, where the entire MapReduce program is run in the same instance of Java as called JobClient.runJob(). Using a debugger like Eclipse, you can then set breakpoints inside the map() or reduce() methods to discover your bugs.

Is reduce job mandatory?

Some jobs can complete all their work during the map phase. Por lo que el trabajo puede ser un mapa único trabajo,,en,Para cancelar un trabajo después de que el mapa se completa,,en,establecer el número de tareas de reducir a cero,,en,Este módulo describe la plataforma de ejecución de MapReduce en el corazón del sistema Hadoop,,en,Mediante el uso de MapReduce,,en,un alto grado de paralelismo se puede alcanzar por las aplicaciones,,en,El marco MapReduce ofrece un alto grado de tolerancia a fallos para aplicaciones que se ejecutan en él mediante la limitación de la comunicación que puede ocurrir entre los nodos,,en,Conceptos Hadoop MapReduce,,en. To stop a job after the map completes, set the number of reduce tasks to zero.

Conclusión

This module described the MapReduce execution platform at the heart of the Hadoop system. By using MapReduce, a high degree of parallelism can be achieved by applications. The MapReduce framework provides a high degree of fault tolerance for applications running on it by limiting the communication which can occur between nodes.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share